0 Replies Latest reply on May 16, 2008 3:22 AM by Mallikarjun SG

    Error in ejb-jar.xml for Entity Bean CMPHome: expected only

    Mallikarjun SG Newbie

      Error in ejb-jar.xml for Entity Bean CMPHome: expected only one prim-key-class tag

      Hi,

      There is an error during deployment as the error says "expected only one prim-key-class tag" in the ejb-jar.xml. Below is the ejb-jar.xml code.

      
      <?xml version="1.0" ?>
       <!DOCTYPE ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN" "http://www.jboss.org/j2ee/dtd/ejb-jar_2_0.dtd">
      <ejb-jar>
       <enterprise-beans>
       <session>
       <ejb-name>Employee Session</ejb-name>
       <home>com.test.EmpHome</home>
       <remote>com.test.EmpRemote</remote>
       <ejb-class>com.test.EmpBean</ejb-class>
       <session-type>Stateful</session-type>
       <transaction-type>Bean</transaction-type>
       <ejb-local-ref>
       <description>This is the reference to the CMP bean</description>
       <ejb-ref-name>ejb/local/CMPHome</ejb-ref-name>
       <ejb-ref-type>Entity</ejb-ref-type>
       <local-home>com.test.CMPHome</local-home>
       <local>com.test.CMPRemote</local>
       <ejb-link>CMPHome</ejb-link>
       </ejb-local-ref>
       </session>
      
       <entity>
       <ejb-name>CMPHome</ejb-name>
       <local-home>com.test.CMPHome</local-home>
       <local>com.test.CMPRemote</local>
       <ejb-class>com.test.CMPBean</ejb-class>
       <persistence-type>Container</persistence-type>
       <cmp-version>2.x</cmp-version>
       <abstract-schema-name>Employee</abstract-schema-name>
       <prim-key-class>java.lang.String</prim-key-class>
       <reentrant>False</reentrant>
       <cmp-field>
       <field-name>id</field-name>
       </cmp-field>
       <cmp-field>
       <field-name>empId</field-name>
       </cmp-field>
       <cmp-field>
       <field-name>empName</field-name>
       </cmp-field>
       <primkey-field>id</primkey-field>
       <query>
       <description>Gets whole collection of Employees</description>
       <query-method>
       <method-name>findEmployee()</method-name>
       <method-params/>
       </query-method>
       <ejb-ql>Select OBJECT(r) From Employee r</ejb-ql>
       </query>
      
       <abstract-schema-name>Customer</abstract-schema-name>
       <prim-key-class>java.lang.Integer</prim-key-class>
       <reentrant>False</reentrant>
       <cmp-field>
       <field-name>cid</field-name>
       </cmp-field>
       <cmp-field>
       <field-name>custId</field-name>
       </cmp-field>
       <cmp-field>
       <field-name>custName</field-name>
       </cmp-field>
       <primkey-field>cid</primkey-field>
       <query>
       <description>Gets whole collection of Customer</description>
       <query-method>
       <method-name>findCustomer()</method-name>
       <method-params/>
       </query-method>
       <ejb-ql>Select OBJECT(a) From Customer a</ejb-ql>
       </query>
      
       </entity>
       </enterprise-beans>
      
       <assembly-descriptor>
       <container-transaction>
       <method>
       <ejb-name>CMPHome</ejb-name>
       <method-name>*</method-name>
       </method>
       <trans-attribute>Required</trans-attribute>
       </container-transaction>
       </assembly-descriptor>
      
      </ejb-jar>
      
      



      Here I am trying to do multiple table transactions in one CMP bean...that why there are two prim key class tags in the ejb-jar.xml. Is this multiple table transactions possible in one CMP bean? If so what is the best way to overcome this problem. If not any suggestion to code multiple table transactions. Please suggest the same.

      Thank you,
      Mallikarjun.