Hi,
I want to use value objects.
I read the xdoclet documention about value object, but when I try to use the xdoclet
@ejb.value-object tag, I get an exception :
13:27:32,103 ERROR [LogInterceptor] TransactionRolledbackLocalException in method:
public abstract fr.edumedia.value.parameter.LanguageValue
fr.edumedia.interfaces.entity.parameter.LanguageLocal.getLanguageValue(), causedBy:
| javax.ejb.EJBException: Method is not a known CMP field accessor, CMR field
accessor, or ejbSelect method: methodName=getLanguageValue
| at
org.jboss.ejb.plugins.cmp.bridge.EntityBridgeInvocationHandler.invoke(EntityBridgeInvocationHandler.java:106)
| at org.jboss.proxy.compiler.Runtime.invoke(Runtime.java:59)
| at
fr.edumedia.ejb.entity.parameter.LanguageBean$Proxy.getLanguageValue(<generated>)
| at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
| at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
| at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
| at java.lang.reflect.Method.invoke(Unknown Source)
| at
org.jboss.ejb.EntityContainer$ContainerInterceptor.invoke(EntityContainer.java:1096)
| at
org.jboss.ejb.plugins.cmp.jdbc.JDBCRelationInterceptor.invoke(JDBCRelationInterceptor.java:72)
| at
org.jboss.ejb.plugins.EntitySynchronizationInterceptor.invoke(EntitySynchronizationInterceptor.java:282)
| at
org.jboss.resource.connectionmanager.CachedConnectionInterceptor.invoke(CachedConnectionInterceptor.java:185)
| at
org.jboss.ejb.plugins.EntityReentranceInterceptor.invoke(EntityReentranceInterceptor.java:114)
| at
org.jboss.ejb.plugins.EntityInstanceInterceptor.invoke(EntityInstanceInterceptor.java:163)
| at
org.jboss.ejb.plugins.EntityLockInterceptor.invoke(EntityLockInterceptor.java:89)
| at
org.jboss.ejb.plugins.EntityCreationInterceptor.invoke(EntityCreationInterceptor.java:54)
| at
org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor.java:84)
| at
org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:267)
| at org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:128)
| at
org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java:118)
| at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:191)
| at
org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invoke(ProxyFactoryFinderInterceptor.java:122)
| at org.jboss.ejb.EntityContainer.internalInvoke(EntityContainer.java:489)
| at org.jboss.ejb.Container.invoke(Container.java:700)
| at
org.jboss.ejb.plugins.local.BaseLocalProxyFactory.invoke(BaseLocalProxyFactory.java:375)
| at org.jboss.ejb.plugins.local.EntityProxy.invoke(EntityProxy.java:38)
| at $Proxy348.getLanguageValue(Unknown Source)
| at
fr.edumedia.ejb.session.ParameterManagerBean.createLanguage(ParameterManagerBean.java:180)
| at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
| at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
| at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
| at java.lang.reflect.Method.invoke(Unknown Source)
| at
org.jboss.ejb.StatelessSessionContainer$ContainerInterceptor.invoke(StatelessSessionContainer.java:683)
| at
org.jboss.resource.connectionmanager.CachedConnectionInterceptor.invoke(CachedConnectionInterceptor.java:185)
| at
org.jboss.ejb.plugins.StatelessSessionInstanceInterceptor.invoke(StatelessSessionInstanceInterceptor.java:72)
| at
org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor.java:84)
| at
org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:267)
| at org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:128)
| at
org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java:118)
| at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:191)
| at
org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invoke(ProxyFactoryFinderInterceptor.java:122)
| at
org.jboss.ejb.StatelessSessionContainer.internalInvoke(StatelessSessionContainer.java:331)
| at org.jboss.ejb.Container.invoke(Container.java:700)
| at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
| at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
| at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
| at java.lang.reflect.Method.invoke(Unknown Source)
| at
org.jboss.mx.capability.ReflectedMBeanDispatcher.invoke(ReflectedMBeanDispatcher.java:284)
| at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:546)
| at org.jboss.invocation.local.LocalInvoker.invoke(LocalInvoker.java:101)
| at org.jboss.invocation.InvokerInterceptor.invoke(InvokerInterceptor.java:90)
| at
org.jboss.proxy.TransactionInterceptor.invoke(TransactionInterceptor.java:46)
| at org.jboss.proxy.SecurityInterceptor.invoke(SecurityInterceptor.java:45)
| at
org.jboss.proxy.ejb.StatelessSessionInterceptor.invoke(StatelessSessionInterceptor.java:100)
| at org.jboss.proxy.ClientContainer.invoke(ClientContainer.java:85)
| at $Proxy360.createLanguage(Unknown Source)
| at fr.edumedia.struts.action.TestEJB.execute(TestEJB.java:35)
| at
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)
| at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
| at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
| at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:507)
| at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
| at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
| at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
| at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
| at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256)
| at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
| at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
| at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
| at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
| at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
| at
org.jboss.web.tomcat.security.JBossSecurityMgrRealm.invoke(JBossSecurityMgrRealm.java:220)
| at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
| at
org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:246)
| at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
| at
org.jboss.web.tomcat.tc4.statistics.ContainerStatsValve.invoke(ContainerStatsValve.java:76)
| at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
| at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
| at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
| at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2417)
| at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
| at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
| at
org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171)
| at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
| at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)
| at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
| at
org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:65)
| at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
| at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:577)
| at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
| at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
| at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
| at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
| at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
| at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
| at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
| at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:197)
| at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:781)
| at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:549)
| at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:605)
| at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:677)
| at java.lang.Thread.run(Unknown Source)
|
|
My Language EJB looks like :
/**
| * @ejb.bean cmp-version = "2.x"
| * name = "Language"
| * primkey-field = "id"
| * view-type = "local"
| * type = "CMP"
| *
| * @ejb.ejb-ref ejb-name = "Label"
| * view-type = "local"
| *
| * @ejb.persistence table-name = "language"
| * @jboss.persistence create-table = "true"
| * pk-constraint = "no"
| * table-name = "language"
| *
| * @ejb.util generate = "physical"
| * @ejb.value-object match = "*"
| *
| */
| public abstract class LanguageBean implements EntityBean {
|
| private EntityContext _ctx;
|
| //#######################################
|
| /**
| * @ejb.interface-method
| *
| * @jboss.persistence auto-increment = "true"
| * @ejb.persistence column-name = "id"
| */
| public abstract Integer getId();
| /**
| * @ejb.interface-method
| */
| public abstract void setId(Integer newLanguageId);
|
| /**
| * @ejb.interface-method
| * @ejb.value-object compose = "fr.edumedia.value.parameter.LabelValue"
| * compose-name = "Label"
| * members =
"fr.edumedia.interfaces.entity.parameter.LabelLocal"
| * members-name = "Label"
| * @ejb.relation name = "Language-Label"
| * role-name = "Language-has-Label"
| * target-ejb = "Label"
| * target-role-name = "Label-of-Language"
| * target-cascade-delete = "true"
| * @jboss.relation fk-column = "labelid"
| * related-pk-field = "id"
| * fk-constraint = "true"
| */
| public abstract LabelLocal getLabel();
| /**
| * @ejb.interface-method
| */
| public abstract void setLabel(LabelLocal newLanguageLabel);
|
| // #######################################
|
| /**
| * @ejb.interface-method
| */
| public abstract LanguageValue getLanguageValue();
| /**
| * @ejb.interface-method
| */
| public abstract void setLanguageValue(LanguageValue language);
|
| ...
Note the two last methods, the first may return me the value object for this entity
EJB, but it appears that NO!!!
Can anybody help me and tell me where I can get a better documentation about the
value-object xdoclet tag use.
Thanks.
View the original post :
http://www.jboss.org/index.html?module=bb&op=viewtopic&p=3835493#3835493
Reply to the post :
http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=3835493
-------------------------------------------------------
This SF.Net email is sponsored by: SourceForge.net Broadband
Sign-up now for SourceForge Broadband and get the fastest
6.0/768 connection for only $19.95/mo for the first 3 months!
http://ads.osdn.com/?ad_id=2562&alloc_id=6184&op=click
_______________________________________________
JBoss-user mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-user