Hi All,
I am using the JBossDoclet to generate my interfaces and xml files and have
some problems deploying the result.
I get the error msg:
[Container factory] org.jboss.ejb.DeploymentException: Error in jboss.xml
for Be
an bank/Customer: ejb-ref bank/Account found in jboss.xml but not in
ejb-jar.xml
I checked the xml files and they seem to be OK. Attached you find them. Any
help would be greatly appreciated.
Thanks
Christian
<?xml version="1.0" encoding="UTF-8"?>
<ejb-jar>
<display-name>Foo</display-name>
<enterprise-beans>
<session>
<description>This is a teller bean.</description>
<ejb-name>bank/Teller</ejb-name>
<home>test.interfaces.TellerHome</home>
<remote>test.interfaces.Teller</remote>
<ejb-class>test.ejb.TellerBean</ejb-class>
<session-type>Stateless</session-type>
<transaction-type>Container</transaction-type>
<ejb-ref>
<ejb-ref-name>ejb/bank/Account</ejb-ref-name>
<ejb-ref-type>Entity</ejb-ref-type>
<home>test.interfaces.AccountHome</home>
<remote>test.interfaces.Account</remote>
<ejb-link>bank/Account</ejb-link>
</ejb-ref>
<security-role-ref>
<role-name>admin</role-name>
<role-link>Administrator</role-link>
</security-role-ref>
</session>
<entity>
<description>This is an account bean. </description>
<ejb-name>bank/Account</ejb-name>
<home>test.interfaces.AccountHome</home>
<remote>test.interfaces.Account</remote>
<ejb-class>test.ejb.AccountCMP</ejb-class>
<persistence-type>Container</persistence-type>
<prim-key-class>test.interfaces.AccountPK</prim-key-class>
<reentrant>True</reentrant>
<cmp-field>
<description>Balance of the account.</description>
<field-name>balance</field-name>
</cmp-field>
<cmp-field>
<description>Id of this account.</description>
<field-name>id</field-name>
</cmp-field>
<cmp-field>
<description>Owner of this account.</description>
<field-name>owner</field-name>
</cmp-field>
<cmp-field>
<description>Version number for soft locking</description>
<field-name>version</field-name>
</cmp-field>
<env-entry>
<env-entry-name>foo</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>bar</env-entry-value>
</env-entry>
<env-entry>
<env-entry-name>foo</env-entry-name>
<env-entry-type>java.lang.Integer</env-entry-type>
<env-entry-value>1234</env-entry-value>
</env-entry>
<ejb-ref>
<ejb-ref-name>ejb/bank/Customer</ejb-ref-name>
<ejb-ref-type>Entity</ejb-ref-type>
<home>test.interfaces.CustomerHome</home>
<remote>test.interfaces.Customer</remote>
<ejb-link>bank/Customer</ejb-link>
</ejb-ref>
<security-role-ref>
<role-name>admin</role-name>
<role-link>Administrator</role-link>
</security-role-ref>
</entity>
<entity>
<description>This is a person bean. </description>
<ejb-name>bank/Person</ejb-name>
<home>test.interfaces.PersonHome</home>
<remote>test.interfaces.Person</remote>
<ejb-class>test.ejb.PersonCMP</ejb-class>
<persistence-type>Container</persistence-type>
<prim-key-class>test.interfaces.PersonPK</prim-key-class>
<reentrant>True</reentrant>
<cmp-field>
<description>Name of the person.</description>
<field-name>name</field-name>
</cmp-field>
<cmp-field>
<description>Id of this person.</description>
<field-name>id</field-name>
</cmp-field>
</entity>
<entity>
<description>This is a customer bean. </description>
<ejb-name>bank/Customer</ejb-name>
<home>test.interfaces.CustomerHome</home>
<remote>test.interfaces.Customer</remote>
<ejb-class>test.ejb.CustomerCMP</ejb-class>
<persistence-type>Container</persistence-type>
<prim-key-class>test.interfaces.CustomerPK</prim-key-class>
<reentrant>True</reentrant>
<cmp-field>
<description>Id of this person.</description>
<field-name>id</field-name>
</cmp-field>
<cmp-field>
<description>Name of the person.</description>
<field-name>name</field-name>
</cmp-field>
<ejb-ref>
<ejb-ref-name>ejb/bank/Account</ejb-ref-name>
<ejb-ref-type>Entity</ejb-ref-type>
<home>test.interfaces.AccountHome</home>
<remote>test.interfaces.Account</remote>
<ejb-link>bank/Account</ejb-link>
</ejb-ref>
<security-role-ref>
<role-name>admin</role-name>
<role-link>Administrator</role-link>
</security-role-ref>
</entity>
</enterprise-beans>
<assembly-descriptor>
<security-role>
<role-name>Administrator</role-name>
</security-role>
<security-role>
<role-name>Customer</role-name>
</security-role>
<security-role>
<role-name>Teller</role-name>
</security-role>
<method-permission>
<role-name>Teller</role-name>
<role-name>Administrator</role-name>
<method>
<ejb-name>bank/Teller</ejb-name>
<method-name>*</method-name>
</method>
</method-permission>
<method-permission>
<role-name>Teller</role-name>
<method>
<ejb-name>bank/Account</ejb-name>
<method-name>*</method-name>
</method>
</method-permission>
<method-permission>
<role-name>Customer</role-name>
<role-name>Administrator</role-name>
<method>
<ejb-name>bank/Account</ejb-name>
<method-name>getBalance</method-name>
<method-intf>Remote</method-intf>
<method-params>
</method-params>
</method>
</method-permission>
<method-permission>
<role-name>Administrator</role-name>
<method>
<ejb-name>bank/Account</ejb-name>
<method-name>getOwner</method-name>
<method-intf>Remote</method-intf>
<method-params>
</method-params>
</method>
</method-permission>
<method-permission>
<role-name>Administrator</role-name>
<method>
<ejb-name>bank/Account</ejb-name>
<method-name>getData</method-name>
<method-intf>Remote</method-intf>
<method-params>
</method-params>
</method>
</method-permission>
<method-permission>
<role-name>Administrator</role-name>
<method>
<ejb-name>bank/Account</ejb-name>
<method-name>create</method-name>
<method-intf>Home</method-intf>
<method-params>
<method-param>test.interfaces.AccountData</method-param>
</method-params>
</method>
</method-permission>
<method-permission>
<role-name>Customer</role-name>
<role-name>Administrator</role-name>
<method>
<ejb-name>bank/Person</ejb-name>
<method-name>getName</method-name>
<method-intf>Remote</method-intf>
<method-params>
</method-params>
</method>
</method-permission>
<method-permission>
<role-name>Administrator</role-name>
<method>
<ejb-name>bank/Person</ejb-name>
<method-name>create</method-name>
<method-intf>Home</method-intf>
<method-params>
<method-param>test.interfaces.PersonData</method-param>
</method-params>
</method>
</method-permission>
<method-permission>
<role-name>Teller</role-name>
<method>
<ejb-name>bank/Customer</ejb-name>
<method-name>*</method-name>
</method>
</method-permission>
<method-permission>
<role-name>Customer</role-name>
<role-name>Administrator</role-name>
<method>
<ejb-name>bank/Customer</ejb-name>
<method-name>getName</method-name>
<method-intf>Remote</method-intf>
<method-params>
</method-params>
</method>
</method-permission>
<method-permission>
<role-name>Administrator</role-name>
<method>
<ejb-name>bank/Customer</ejb-name>
<method-name>create</method-name>
<method-intf>Home</method-intf>
<method-params>
<method-param>test.interfaces.CustomerData</method-param>
</method-params>
</method>
</method-permission>
<container-transaction>
<method>
<ejb-name>bank/Teller</ejb-name>
<method-name>*</method-name>
</method>
<trans-attribute>Required</trans-attribute>
</container-transaction>
<container-transaction>
<method>
<ejb-name>bank/Teller</ejb-name>
<method-name>remove</method-name>
<method-intf>Home</method-intf>
<method-params>
</method-params>
</method>
<trans-attribute>Mandatory</trans-attribute>
</container-transaction>
<container-transaction>
<method>
<ejb-name>bank/Account</ejb-name>
<method-name>*</method-name>
</method>
<trans-attribute>Required</trans-attribute>
</container-transaction>
<container-transaction>
<method>
<ejb-name>bank/Account</ejb-name>
<method-name>getBalance</method-name>
<method-intf>Remote</method-intf>
<method-params>
</method-params>
</method>
<trans-attribute>Supports</trans-attribute>
</container-transaction>
<container-transaction>
<method>
<ejb-name>bank/Account</ejb-name>
<method-name>getOwner</method-name>
<method-intf>Remote</method-intf>
<method-params>
</method-params>
</method>
<trans-attribute>Supports</trans-attribute>
</container-transaction>
<container-transaction>
<method>
<ejb-name>bank/Account</ejb-name>
<method-name>getData</method-name>
<method-intf>Remote</method-intf>
<method-params>
</method-params>
</method>
<trans-attribute>Supports</trans-attribute>
</container-transaction>
<container-transaction>
<method>
<ejb-name>bank/Account</ejb-name>
<method-name>findAll</method-name>
<method-intf>Home</method-intf>
<method-params>
</method-params>
</method>
<trans-attribute>NotSupported</trans-attribute>
</container-transaction>
<container-transaction>
<method>
<ejb-name>bank/Account</ejb-name>
<method-name>findByOwner</method-name>
<method-intf>Home</method-intf>
<method-params>
<method-param>test.interfaces.Customer</method-param>
</method-params>
</method>
<trans-attribute>Supports</trans-attribute>
</container-transaction>
<container-transaction>
<method>
<ejb-name>bank/Account</ejb-name>
<method-name>remove</method-name>
<method-intf>Home</method-intf>
<method-params>
</method-params>
</method>
<trans-attribute>Mandatory</trans-attribute>
</container-transaction>
<container-transaction>
<method>
<ejb-name>bank/Person</ejb-name>
<method-name>*</method-name>
</method>
<trans-attribute>Required</trans-attribute>
</container-transaction>
<container-transaction>
<method>
<ejb-name>bank/Person</ejb-name>
<method-name>getName</method-name>
<method-intf>Remote</method-intf>
<method-params>
</method-params>
</method>
<trans-attribute>Supports</trans-attribute>
</container-transaction>
<container-transaction>
<method>
<ejb-name>bank/Person</ejb-name>
<method-name>getData</method-name>
<method-intf>Remote</method-intf>
<method-params>
</method-params>
</method>
<trans-attribute>Supports</trans-attribute>
</container-transaction>
<container-transaction>
<method>
<ejb-name>bank/Person</ejb-name>
<method-name>findAll</method-name>
<method-intf>Home</method-intf>
<method-params>
</method-params>
</method>
<trans-attribute>NotSupported</trans-attribute>
</container-transaction>
<container-transaction>
<method>
<ejb-name>bank/Person</ejb-name>
<method-name>remove</method-name>
<method-intf>Home</method-intf>
<method-params>
</method-params>
</method>
<trans-attribute>Mandatory</trans-attribute>
</container-transaction>
<container-transaction>
<method>
<ejb-name>bank/Customer</ejb-name>
<method-name>*</method-name>
</method>
<trans-attribute>Required</trans-attribute>
</container-transaction>
<container-transaction>
<method>
<ejb-name>bank/Customer</ejb-name>
<method-name>getName</method-name>
<method-intf>Remote</method-intf>
<method-params>
</method-params>
</method>
<trans-attribute>Supports</trans-attribute>
</container-transaction>
<container-transaction>
<method>
<ejb-name>bank/Customer</ejb-name>
<method-name>getAccounts</method-name>
<method-intf>Remote</method-intf>
<method-params>
</method-params>
</method>
<trans-attribute>Supports</trans-attribute>
</container-transaction>
<container-transaction>
<method>
<ejb-name>bank/Customer</ejb-name>
<method-name>getData</method-name>
<method-intf>Remote</method-intf>
<method-params>
</method-params>
</method>
<trans-attribute>Supports</trans-attribute>
</container-transaction>
<container-transaction>
<method>
<ejb-name>bank/Customer</ejb-name>
<method-name>findAll</method-name>
<method-intf>Home</method-intf>
<method-params>
</method-params>
</method>
<trans-attribute>NotSupported</trans-attribute>
</container-transaction>
<container-transaction>
<method>
<ejb-name>bank/Customer</ejb-name>
<method-name>remove</method-name>
<method-intf>Home</method-intf>
<method-params>
</method-params>
</method>
<trans-attribute>Mandatory</trans-attribute>
</container-transaction>
</assembly-descriptor>
</ejb-jar>
<?xml version="1.0" encoding="UTF-8"?>
<jboss>
<enterprise-beans>
<session>
<ejb-name>bank/Teller</ejb-name>
<jndi-name>ejb/bank/Teller</jndi-name>
<container-configuration>Standard Stateless SessionBean</container-configuration>
<ejb-ref>
<ejb-ref-name>bank/Account</ejb-ref-name>
<jndi-name>ejb/bank/Account</jndi-name>
</ejb-ref>
</session>
<entity>
<ejb-name>bank/Account</ejb-name>
<jndi-name>ejb/bank/Account</jndi-name>
<container-configuration>Standard CMP EntityBean</container-configuration>
</entity>
<entity>
<ejb-name>bank/Person</ejb-name>
<jndi-name>ejb/bank/Person</jndi-name>
</entity>
<entity>
<ejb-name>bank/Customer</ejb-name>
<jndi-name>ejb/bank/Customer</jndi-name>
<ejb-ref>
<ejb-ref-name>bank/Account</ejb-ref-name>
<jndi-name>ejb/bank/Account</jndi-name>
</ejb-ref>
</entity>
</enterprise-beans>
</jboss>