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> <description>No Description</description> <display-name>Generated by XDoclet</display-name> <enterprise-beans> <!-- Session Beans --> <session id="SomeSession"> <description><![CDATA[No Description.]]></description> <ejb-name>SomeSession</ejb-name> <home>ejb.SomeSessionHome</home> <remote>ejb.SomeSession</remote> <ejb-class>ejb.SomeSessionEJB</ejb-class> <session-type>Stateless</session-type> <transaction-type>Container</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-name>SomeEntity</ejb-name> <local-home>ejb.SomeEntityLocalHome</local-home> <local>ejb.SomeEntityLocal</local> <ejb-class>ejb.SomeEntityCMP</ejb-class> <persistence-type>Container</persistence-type> <prim-key-class>java.lang.String</prim-key-class> <reentrant>False</reentrant> <cmp-version>2.x</cmp-version> <abstract-schema-name>SomeEntity</abstract-schema-name> <cmp-field> <description><![CDATA[]]></description> <field-name>id</field-name> </cmp-field> <cmp-field> <description><![CDATA[]]></description> <field-name>foo</field-name> </cmp-field> <primkey-field>id</primkey-field> <query> <query-method> <method-name>findAll</method-name> <method-params> </method-params> </query-method> <ejb-ql><![CDATA[]]></ejb-ql> </query> </entity> <!-- To add entity beans that you have deployment descriptor info for, add a file to your merge directory called session-beans.xml that contains the <entity></entity> markup for those beans. --> <!-- Message Driven Beans --> <!-- To add message driven beans that you have deployment descriptor info for, add a file to your merge directory called message-driven-beans.xml that contains the <message-driven></message-driven> markup for those beans. --> </enterprise-beans> <!-- Relationships --> <!-- Assembly Descriptor --> <assembly-descriptor> <!-- finder permissions --> <!-- finder permissions --> <!-- transactions --> <container-transaction> <method> <ejb-name>SomeEntity</ejb-name> <method-name>*</method-name> </method> <trans-attribute>Supports</trans-attribute> </container-transaction> <container-transaction> <method> <ejb-name>SomeSession</ejb-name> <method-name>*</method-name> </method> <trans-attribute>Required</trans-attribute> </container-transaction> <!-- finder transactions --> </assembly-descriptor> </ejb-jar> ------ 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> <datasource>java:/DefaultDS</datasource> </defaults> <enterprise-beans> <entity> <ejb-name>SomeEntity</ejb-name> <table-name>something</table-name> <cmp-field> <field-name>foo</field-name> <column-name>foo</column-name> </cmp-field> <cmp-field> <field-name>id</field-name> <column-name>id</column-name> </cmp-field> </entity> </enterprise-beans> </jbosscmp-jdbc> ------ I'm completely baffled. Thanks in advance, Jeff Schnitzer [EMAIL PROTECTED] _______________________________________________ JBoss-user mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/jboss-user