hello all, i am trying to use openejb to test my application..... i downloaded version 1.0-2005092 and build my app with maven.. unfortunately i got the followign exception validate: [java] Exception in thread "main" java.lang.NoSuchMethodError: org.exolab.ca<http://org.exolab.ca> stor.xml.MarshalException.getException()Ljava/lang/Throwable; [java] at org.openejb.alt.config.Unmarshaller.unmarshalObject(Unmarshal ler.java:178) [java] at org.openejb.alt.config.Unmarshaller.unmarshalFromJar(Unmarsha ller.java:109) [java] at org.openejb.alt.config.Unmarshaller.unmarshal(Unmarshaller.ja va:90) [java] at org.openejb.alt.config.Unmarshaller.unmarshal(Unmarshaller.ja va:82) [java] at org.openejb.alt.config.EjbJarUtils.readEjbJar(EjbJarUtils.jav a:116) [java] at org.openejb.alt.config.EjbJarUtils.<init>(EjbJarUtils.java:95 ) [java] at org.openejb.alt.config.EjbValidator.main(EjbValidator.java:34 9) below is the generated (from xdoclet) ejb-jar.xml and openejb-jar.xml, but i guess problem is in with castor...... which version do i need to include? i am currently using 0.9.3 (as per ejb-test-example), do i have to use 0.9.9? thanks and regards marco ********************** 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><![CDATA[No Description.]]></description> <display-name>Generated by XDoclet</display-name> <enterprise-beans> <!-- Session Beans --> <session > <description><![CDATA[Facade SessionBean for administrative purposes]]></description> <ejb-name>AdminFacade</ejb-name> <home>com.myapp.ejb.AdminFacadeHome</home> <remote>com.myapp.ejb.AdminFacade</remote> <ejb-class>com.myapp.ejb.AdminFacadeSession</ejb-class> <session-type>Stateless</session-type> <transaction-type>Container</transaction-type> <ejb-ref > <ejb-ref-name>ejb/User</ejb-ref-name> <ejb-ref-type>Entity</ejb-ref-type> <home>com.myapp.ejb.UserHome</home> <remote>com.myapp.ejb.User</remote> <ejb-link>User</ejb-link> </ejb-ref> <ejb-ref > <ejb-ref-name>ejb/ExpenseType</ejb-ref-name> <ejb-ref-type>Entity</ejb-ref-type> <home>com.myapp.ejb.ExpenseTypeHome</home> <remote>com.myapp.ejb.ExpenseType</remote> <ejb-link>ExpenseType</ejb-link> </ejb-ref> </session> <!-- To add session beans that you have deployment descriptor info for, add a file to your XDoclet merge directory called session-beans.xml that contains the <session></session> markup for those beans. --> <!-- Entity Beans --> <entity > <description><![CDATA[]]></description> <ejb-name>ExpenseType</ejb-name> <home>com.myapp.ejb.ExpenseTypeHome</home> <remote>com.myapp.ejb.ExpenseType</remote> <local-home>com.myapp.ejb.ExpenseTypeLocalHome</local-home> <local>com.myapp.ejb.ExpenseTypeLocal</local> <ejb-class>com.myapp.ejb.ExpenseTypeCMP</ejb-class> <persistence-type>Container</persistence-type> <prim-key-class>java.lang.Integer</prim-key-class> <reentrant>False</reentrant> <cmp-version>2.x</cmp-version> <abstract-schema-name>ExpenseType</abstract-schema-name> <cmp-field > <description><![CDATA[]]></description> <field-name>id</field-name> </cmp-field> <cmp-field > <description><![CDATA[]]></description> <field-name>description</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/> </query> <!-- Write a file named ejb-finders-ExpenseTypeBean.xml if you want to define extra finders. --> </entity> <entity > <description><![CDATA[User Bean for Expenses]]></description> <ejb-name>User</ejb-name> <home>com.myapp.ejb.UserHome</home> <remote>com.myapp.ejb.User</remote> <local-home>com.myapp.ejb.UserLocalHome</local-home> <local>com.myapp.ejb.UserLocal</local> <ejb-class>com.myapp.ejb.UserCMP</ejb-class> <persistence-type>Container</persistence-type> <prim-key-class>java.lang.Integer</prim-key-class> <reentrant>False</reentrant> <cmp-version>2.x</cmp-version> <abstract-schema-name>User</abstract-schema-name> <cmp-field > <description><![CDATA[]]></description> <field-name>userId</field-name> </cmp-field> <cmp-field > <description><![CDATA[]]></description> <field-name>username</field-name> </cmp-field> <cmp-field > <description><![CDATA[]]></description> <field-name>password</field-name> </cmp-field> <primkey-field>userId</primkey-field> <query> <query-method> <method-name>findByUsername</method-name> <method-params> <method-param>String</method-param> </method-params> </query-method> <ejb-ql/> </query> <!-- Write a file named ejb-finders-UserBean.xml if you want to define extra finders. --> </entity> <!-- To add entity beans that you have deployment descriptor info for, add a file to your XDoclet merge directory called entity-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 XDoclet merge directory called message-driven-beans.xml that contains the <message-driven></message-driven> markup for those beans. --> </enterprise-beans> <!-- Relationships --> <!-- Assembly Descriptor --> <!-- To specify your own assembly descriptor info here, add a file to your XDoclet merge directory called assembly-descriptor.xml that contains the <assembly-descriptor></assembly-descriptor> markup. --> <assembly-descriptor > <!-- To specify additional security-role elements, add a file in the merge directory called ejb-security-roles.xml that contains them. --> <!-- method permissions --> <!-- To specify additional method-permission elements, add a file in the merge directory called ejb-method-permissions.ent that contains them. --> <!-- transactions --> <!-- To specify additional container-transaction elements, add a file in the merge directory called ejb-container-transactions.ent that contains them. --> <container-transaction > <method > <ejb-name>ExpenseType</ejb-name> <method-name>*</method-name> </method> <trans-attribute>Required</trans-attribute> </container-transaction> <!-- finder transactions --> <!-- message destinations --> <!-- To specify additional message-destination elements, add a file in the merge directory called ejb-message-destinations.ent that contains them. --> <!-- exclude list --> <!-- To specify an exclude-list element, add a file in the merge directory called ejb-exclude-list.xml that contains it. --> </assembly-descriptor> </ejb-jar> ******************************************************************************* openejb-jar.xml ----------------------------- <?xml version="1.0"?> <openejb-jar xmlns="http://www.openejb.org/openejb-jar/1.1"> <ejb-deployment ejb-name="User" deployment-id="User" container-id="Default CMP Container"> <query> <query-method> <method-name>findByUsername</method-name> <method-params> <method-param>java.lang.String</method-param> </method-params> </query-method> <object-ql> SELECT o FROM com.myapp.ejb.UserCMP o WHERE o.username = $1 </object-ql> </query> </ejb-deployment> <ejb-deployment ejb-name="ExpenseType" deployment-id="ExpenseType" container-id="Default CMP Container"> <query> <query-method> <method-name>findAll</method-name> <method-params/> </query-method> <object-ql> SELECT o FROM com.myapp.ejb.ExpenseTypeCMP o </object-ql> </query> </ejb-deployment> <ejb-deployment ejb-name="AdminFacade" deployment-id="AdminFacade" container-id="Default Stateless Container"/> </openejb-jar>
