RE: [JBoss-user] Not the usual primkey-field problem
Doh! Bart! I feel silly. Thanks, it's working fine now. BTW, someone should update the DTD at: http://www.jboss.org/j2ee/dtd/jbosscmp-jdbc_3_0.dtd Jeff -- From: Dain Sundstrom (datasource, datasource-mapping)?, Means that you must have both or neither. -dain winmail.dat Description: application/ms-tnef
Re: [JBoss-user] Not the usual primkey-field problem
Jeff, Just ignore the spec violation errors right now. The code was just added and from what I understand it is currently just a copy of the CMP 1.1 verifier. I don't remember who is working on it, but he said that this was a known problem. Anyway, it should be fixed soon. -dain Jeff Schnitzer wrote: I am trying to deploy a simple test CMP 2.0 entity bean on a fresh build of the jboss 3.0 CVS tree. My deployment descriptors are built with the CVS version of XDoclet. I feel fairly certain that they are correct, and yet I am getting a spec violation error complaining that the primkey-field must be one of the CMP fields of the entity. In addition, I get an error message which looks like the jbosscmp-jdbc.xml is failing validation... but looking at the DTD, the complaint must be erroneous. The DTD says that all elements within defaults are optional. What's up? Can someone take a look at this and give me some suggestions? This is a trivial bean... (as an aside, should I be posting questions like this here or in the forums or both?) The error looks like this: -- 01:12:34,837 INFO [EARDeployer] Init J2EE application: file:/C:/src/jboss/jboss-all/build/output/jboss-3.0.0beta2/server/defaul t/deploy/servertest2.ear 01:12:35,860 INFO [EJBDeployer] Bean : SomeEntity Section: 10.8.1 Warning: The primkey-field must be one of the CMP fields of the entity bean. 01:12:35,950 INFO [EjbModule] Creating 01:12:36,050 INFO [EjbModule] Deploying SomeEntity 01:12:36,742 INFO [EjbModule] Deploying SomeSession 01:12:37,533 ERROR [XmlFileLoader] XmlFileLoader: File njar:file:/C:/src/jboss/jboss-all/build/output/jboss-3.0.0beta2/server/d efault/tmp/deploy/C/src/jboss/jboss-all/build/output/jboss-3.0.0beta2/se rver/default/deploy/servertest2.ear/71.servertest2.ear^/servertest2-ejb. jar!/META-INF/jbosscmp-jdbc.xml process error. Line: 7. Error message: Element defaults requires additional elements. ...lots more errors -- Yet the primkey-field appears to be set up just fine. Here is what my EJB (with XDoclet tags) looks like: -- package ejb; import javax.ejb.*; /** * @author Jeff Schnitzer * * @ejb:bean name=SomeEntity * view-type=local * type=CMP * local-jndi-name=ejb/SomeEntity * primkey-field=id * * @ejb:pk class=java.lang.String * * @ejb:transaction type=Supports * * @ejb:home local-extends=javax.ejb.EJBLocalHome * @ejb:data-object extends=java.lang.Object * * @ejb:finder signature=java.util.Collection findAll() * query= * * @jboss:table-name something */ public abstract class SomeEntityEJB extends EntityBeanSupport { /** * @ejb:pk-field * @ejb:interface-method * @ejb:persistent-field * * @jboss:column-name=id */ public abstract String getId(); public abstract void setId(String id); /** * @ejb:interface-method * @ejb:persistent-field * * @jboss:column-name=foo */ public abstract String getFoo(); public abstract void setFoo(String foo); /** * @ejb:create-method */ public String ejbCreate(String id, String foo) throws CreateException { this.setId(id); this.setFoo(foo); // For CMP we always return null return null; } public void ejbPostCreate(String id, String foo) {} } -- This produces a very normal looking ejb-jar.xml: -- ?xml version=1.0 encoding=UTF-8? !DOCTYPE ejb-jar PUBLIC -//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN http://java.sun.com/dtd/ejb-jar_2_0.dtd; ejb-jar descriptionNo Description/description display-nameGenerated by XDoclet/display-name enterprise-beans !-- Session Beans -- session id=SomeSession description![CDATA[No Description.]]/description ejb-nameSomeSession/ejb-name homeejb.SomeSessionHome/home remoteejb.SomeSession/remote ejb-classejb.SomeSessionEJB/ejb-class session-typeStateless/session-type transaction-typeContainer/transaction-type /session !-- To add session beans that you have deployment descriptor info for, add a file to your merge directory called session-beans.xml that contains the session/session markup for those beans. -- !-- Entity Beans -- entity id=SomeEntity description![CDATA[No Description.]]/description ejb-nameSomeEntity/ejb-name local-homeejb.SomeEntityLocalHome/local-home localejb.SomeEntityLocal/local ejb-classejb.SomeEntityCMP/ejb-class persistence-typeContainer/persistence-type prim-key-classjava.lang.String/prim-key-class reentrantFalse/reentrant
RE: [JBoss-user] Not the usual primkey-field problem
From: Dain Sundstrom [mailto:[EMAIL PROTECTED]] Here is the defatults element: !ELEMENT defaults ((datasource, datasource-mapping)?, create-table?, remove-table?, read-only?, read-time-out?, row-locking?, pk-constraint?, fk-constraint?, preferred-relation-mapping?, read-ahead?, list-cache-max?) Did you define datasource and not datasource-mapping (or visa versa)? Yep, defined the datasource. Interesting, that DTD is a little different from the one I downloaded two days ago. But it still doesn't explain my problem. Here is my jbosscmp-jdbc.xml: - ?xml version=1.0 encoding=UTF-8? !DOCTYPE jbosscmp-jdbc PUBLIC -//JBoss//DTD JBOSSCMP-JDBC 3.0//EN http://www.jboss.org/j2ee/dtd/jbosscmp-jdbc_3_0.dtd; jbosscmp-jdbc defaults datasourcejava:/DefaultDS/datasource /defaults enterprise-beans entity ejb-nameSomeEntity/ejb-name table-namesomething/table-name cmp-field field-namefoo/field-name column-namefoo/column-name /cmp-field cmp-field field-nameid/field-name column-nameid/column-name /cmp-field /entity /enterprise-beans /jbosscmp-jdbc - Thanks for the continued dialogue, btw! Jeff Schnitzer [EMAIL PROTECTED] ___ JBoss-user mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/jboss-user
RE: [JBoss-user] Not the usual primkey-field problem
From: Dain Sundstrom [mailto:[EMAIL PROTECTED]] Just ignore the spec violation errors right now. The code was just added and from what I understand it is currently just a copy of the CMP 1.1 verifier. I don't remember who is working on it, but he said that this was a known problem. Anyway, it should be fixed soon. Cool. However, my bean still doesn't deploy, probably because of the other error (something to do with defaults requiring more elements in jbosscmp-jdbc.xml). This is puzzling, because the DTD declares that all elements within defaults are optional. Any advice? The jbosscmp-jdbc.xml is attached to my previous message, the (rather long) excerpt from the log file when I try to deploy is here: - 2002-04-10 12:51:46,259 DEBUG [org.jboss.ejb.plugins.cmp.jdbc.JDBCStoreManager.SomeEntity] Initializing CMP plugin for SomeEntity 2002-04-10 12:51:46,469 DEBUG [org.jboss.ejb.plugins.cmp.jdbc.JDBCStoreManager.SomeEntity] Loading standardjbosscmp-jdbc.xml : file:/C:/src/jboss/jboss-all/build/output/jboss-3.0.0beta2/server/defaul t/conf/standardjbosscmp-jdbc.xml 2002-04-10 12:51:47,100 DEBUG [org.jboss.ejb.plugins.cmp.jdbc.JDBCStoreManager.SomeEntity] jar:njar:file:/C:/src/jboss/jboss-all/build/output/jboss-3.0.0beta2/serv er/default/tmp/deploy/C/src/jboss/jboss-all/build/output/jboss-3.0.0beta 2/server/default/deploy/servertest2.ear/71.servertest2.ear^/servertest2- ejb.jar!/META-INF/jbosscmp-jdbc.xml found. Overriding defaults 2002-04-10 12:51:47,200 ERROR [org.jboss.metadata.XmlFileLoader] XmlFileLoader: File njar:file:/C:/src/jboss/jboss-all/build/output/jboss-3.0.0beta2/server/d efault/tmp/deploy/C/src/jboss/jboss-all/build/output/jboss-3.0.0beta2/se rver/default/deploy/servertest2.ear/71.servertest2.ear^/servertest2-ejb. jar!/META-INF/jbosscmp-jdbc.xml process error. Line: 7. Error message: Element defaults requires additional elements. 2002-04-10 12:51:47,240 ERROR [org.jboss.ejb.EntityContainer] Exception in service lifecyle operation: create org.jboss.deployment.DeploymentException: Invalid XML: file=njar:file:/C:/src/jboss/jboss-all/build/output/jboss-3.0.0beta2/ser ver/default/tmp/deploy/C/src/jboss/jboss-all/build/output/jboss-3.0.0bet a2/server/default/deploy/servertest2.ear/71.servertest2.ear^/servertest2 -ejb.jar!/META-INF/jbosscmp-jdbc.xml at org.jboss.metadata.XmlFileLoader.getDocument(XmlFileLoader.java:262) at org.jboss.metadata.XmlFileLoader.getDocumentFromURL(XmlFileLoader.java:2 29) at org.jboss.metadata.XmlFileLoader.getDocument(XmlFileLoader.java:214) at org.jboss.ejb.plugins.cmp.jdbc.metadata.JDBCXmlFileLoader.load(JDBCXmlFi leLoader.java:74) at org.jboss.ejb.plugins.cmp.jdbc.JDBCStoreManager.loadJDBCEntityMetaData(J DBCStoreManager.java:521) at org.jboss.ejb.plugins.cmp.jdbc.JDBCStoreManager.create(JDBCStoreManager. java:280) at org.jboss.ejb.plugins.CMPPersistenceManager.create(CMPPersistenceManager .java:138) at org.jboss.ejb.EntityContainer.create(EntityContainer.java:329) at org.jboss.ejb.Container.invoke(Container.java:765) at org.jboss.ejb.EntityContainer.invoke(EntityContainer.java:1007) at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:447) at org.jboss.system.ServiceController$ServiceProxy.invoke(ServiceController .java:805) at $Proxy1.create(Unknown Source) at org.jboss.system.ServiceController.create(ServiceController.java:239) at java.lang.reflect.Method.invoke(Native Method) at org.jboss.mx.capability.ReflectedMBeanDispatcher.invoke(ReflectedMBeanDi spatcher.java:284) at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:447) at org.jboss.util.jmx.MBeanProxy.invoke(MBeanProxy.java:174) at $Proxy22.create(Unknown Source) at org.jboss.ejb.EjbModule.createService(EjbModule.java:348) at org.jboss.system.ServiceMBeanSupport.create(ServiceMBeanSupport.java:134 ) at java.lang.reflect.Method.invoke(Native Method) at org.jboss.mx.capability.ReflectedMBeanDispatcher.invoke(ReflectedMBeanDi spatcher.java:284) at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:447) at org.jboss.system.ServiceController$ServiceProxy.invoke(ServiceController .java:805) at $Proxy1.create(Unknown Source) at org.jboss.system.ServiceController.create(ServiceController.java:239) at java.lang.reflect.Method.invoke(Native Method) at org.jboss.mx.capability.ReflectedMBeanDispatcher.invoke(ReflectedMBeanDi spatcher.java:284) at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:447) at org.jboss.util.jmx.MBeanProxy.invoke(MBeanProxy.java:174) at $Proxy6.create(Unknown Source) at org.jboss.ejb.EJBDeployer.create(EJBDeployer.java:372) at org.jboss.deployment.MainDeployer.create(MainDeployer.java:633) at
Re: [JBoss-user] Not the usual primkey-field problem
Jeff Schnitzer wrote: From: Dain Sundstrom [mailto:[EMAIL PROTECTED]] Here is the defatults element: !ELEMENT defaults ((datasource, datasource-mapping)?, create-table?, remove-table?, read-only?, read-time-out?, row-locking?, pk-constraint?, fk-constraint?, preferred-relation-mapping?, read-ahead?, list-cache-max?) Did you define datasource and not datasource-mapping (or visa versa)? Yep, defined the datasource. Interesting, that DTD is a little different from the one I downloaded two days ago. But it still doesn't explain my problem. Here is my jbosscmp-jdbc.xml: - ?xml version=1.0 encoding=UTF-8? !DOCTYPE jbosscmp-jdbc PUBLIC -//JBoss//DTD JBOSSCMP-JDBC 3.0//EN http://www.jboss.org/j2ee/dtd/jbosscmp-jdbc_3_0.dtd; jbosscmp-jdbc defaults datasourcejava:/DefaultDS/datasource /defaults (datasource, datasource-mapping)?, Means that you must have both or neither. -dain ___ JBoss-user mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/jboss-user
Re: [JBoss-user] Not the usual primkey-field problem
Here is the defatults element: !ELEMENT defaults ((datasource, datasource-mapping)?, create-table?, remove-table?, read-only?, read-time-out?, row-locking?, pk-constraint?, fk-constraint?, preferred-relation-mapping?, read-ahead?, list-cache-max?) Did you define datasource and not datasource-mapping (or visa versa)? -dain Jeff Schnitzer wrote: From: Dain Sundstrom [mailto:[EMAIL PROTECTED]] Just ignore the spec violation errors right now. The code was just added and from what I understand it is currently just a copy of the CMP 1.1 verifier. I don't remember who is working on it, but he said that this was a known problem. Anyway, it should be fixed soon. Cool. However, my bean still doesn't deploy, probably because of the other error (something to do with defaults requiring more elements in jbosscmp-jdbc.xml). This is puzzling, because the DTD declares that all elements within defaults are optional. Any advice? The jbosscmp-jdbc.xml is attached to my previous message, the (rather long) excerpt from the log file when I try to deploy is here: - 2002-04-10 12:51:46,259 DEBUG [org.jboss.ejb.plugins.cmp.jdbc.JDBCStoreManager.SomeEntity] Initializing CMP plugin for SomeEntity 2002-04-10 12:51:46,469 DEBUG [org.jboss.ejb.plugins.cmp.jdbc.JDBCStoreManager.SomeEntity] Loading standardjbosscmp-jdbc.xml : file:/C:/src/jboss/jboss-all/build/output/jboss-3.0.0beta2/server/defaul t/conf/standardjbosscmp-jdbc.xml 2002-04-10 12:51:47,100 DEBUG [org.jboss.ejb.plugins.cmp.jdbc.JDBCStoreManager.SomeEntity] jar:njar:file:/C:/src/jboss/jboss-all/build/output/jboss-3.0.0beta2/serv er/default/tmp/deploy/C/src/jboss/jboss-all/build/output/jboss-3.0.0beta 2/server/default/deploy/servertest2.ear/71.servertest2.ear^/servertest2- ejb.jar!/META-INF/jbosscmp-jdbc.xml found. Overriding defaults 2002-04-10 12:51:47,200 ERROR [org.jboss.metadata.XmlFileLoader] XmlFileLoader: File njar:file:/C:/src/jboss/jboss-all/build/output/jboss-3.0.0beta2/server/d efault/tmp/deploy/C/src/jboss/jboss-all/build/output/jboss-3.0.0beta2/se rver/default/deploy/servertest2.ear/71.servertest2.ear^/servertest2-ejb. jar!/META-INF/jbosscmp-jdbc.xml process error. Line: 7. Error message: Element defaults requires additional elements. 2002-04-10 12:51:47,240 ERROR [org.jboss.ejb.EntityContainer] Exception in service lifecyle operation: create org.jboss.deployment.DeploymentException: Invalid XML: file=njar:file:/C:/src/jboss/jboss-all/build/output/jboss-3.0.0beta2/ser ver/default/tmp/deploy/C/src/jboss/jboss-all/build/output/jboss-3.0.0bet a2/server/default/deploy/servertest2.ear/71.servertest2.ear^/servertest2 -ejb.jar!/META-INF/jbosscmp-jdbc.xml at org.jboss.metadata.XmlFileLoader.getDocument(XmlFileLoader.java:262) at org.jboss.metadata.XmlFileLoader.getDocumentFromURL(XmlFileLoader.java:2 29) at org.jboss.metadata.XmlFileLoader.getDocument(XmlFileLoader.java:214) at org.jboss.ejb.plugins.cmp.jdbc.metadata.JDBCXmlFileLoader.load(JDBCXmlFi leLoader.java:74) at org.jboss.ejb.plugins.cmp.jdbc.JDBCStoreManager.loadJDBCEntityMetaData(J DBCStoreManager.java:521) at org.jboss.ejb.plugins.cmp.jdbc.JDBCStoreManager.create(JDBCStoreManager. java:280) at org.jboss.ejb.plugins.CMPPersistenceManager.create(CMPPersistenceManager .java:138) at org.jboss.ejb.EntityContainer.create(EntityContainer.java:329) at org.jboss.ejb.Container.invoke(Container.java:765) at org.jboss.ejb.EntityContainer.invoke(EntityContainer.java:1007) at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:447) at org.jboss.system.ServiceController$ServiceProxy.invoke(ServiceController .java:805) at $Proxy1.create(Unknown Source) at org.jboss.system.ServiceController.create(ServiceController.java:239) at java.lang.reflect.Method.invoke(Native Method) at org.jboss.mx.capability.ReflectedMBeanDispatcher.invoke(ReflectedMBeanDi spatcher.java:284) at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:447) at org.jboss.util.jmx.MBeanProxy.invoke(MBeanProxy.java:174) at $Proxy22.create(Unknown Source) at org.jboss.ejb.EjbModule.createService(EjbModule.java:348) at org.jboss.system.ServiceMBeanSupport.create(ServiceMBeanSupport.java:134 ) at java.lang.reflect.Method.invoke(Native Method) at org.jboss.mx.capability.ReflectedMBeanDispatcher.invoke(ReflectedMBeanDi spatcher.java:284) at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:447) at org.jboss.system.ServiceController$ServiceProxy.invoke(ServiceController .java:805) at $Proxy1.create(Unknown Source) at org.jboss.system.ServiceController.create(ServiceController.java:239) at java.lang.reflect.Method.invoke(Native Method) at org.jboss.mx.capability.ReflectedMBeanDispatcher.invoke(ReflectedMBeanDi