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

Reply via email to