Comments inline.
On 7/3/07, Xh <[EMAIL PROTECTED]> wrote:
Hi All!
I can deploy successfully the EJB JAR that defines remote stateful session
bean.
But I have a problem while deploying WAR application that needs to
retrieve this remote session bean.
In my EJB JAR I have defined two files: META-INF/ejb-jar.xml and
META-INF/openejb-jar.xml
ejb-jar.xml extract follows:
<enterprise-beans>
<session>
<display-name>ModuleFactory</display-name>
<ejb-name>ModuleFactory</ejb-name>
<home>org.xh.dataweaver.common.ejb.ModuleFactoryHome</home>
<remote>org.xh.dataweaver.common.ejb.ModuleFactory</remote>
<ejb-class>
org.xh.dataweaver.enterprise.core.ejb.ModuleFactoryBean</ejb-class>
<session-type>Stateful</session-type>
<transaction-type>Container</transaction-type>
</session>
</enterprise-beans>
openejb-jar.xml extract follows:
<enterprise-beans>
<session>
<ejb-name>ModuleFactory</ejb-name>
<ejb-ref>
<ref-name>ejb/ModuleFactory</ref-name>
<ejb-link>ModuleFactory</ejb-link>
</ejb-ref>
</session>
</enterprise-beans>
There isn't a need to specify the <ejb-ref> element here. It instead needs
to be in the referring WAR's geronimo-web.xml. Create a "geronimo-web.xml"
as below and specify it while deploying your WAR.
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://geronimo.apache.org/xml/ns/j2ee/web-1.1">
<dep:environment xmlns:dep="
http://geronimo.apache.org/xml/ns/deployment-1.1">
<dep:moduleId>
<dep:groupId>your-web-app's-group-id</dep:groupId>
<dep:artifactId>your-web-app's-artifact-id</dep:artifactId>
<dep:version>1.0</dep:version>
<dep:type>war</dep:type>
</dep:moduleId>
<dep:dependencies>
<dep:dependency>
<dep:groupId>ejb's-group-id</dep:groupId>
<dep:artifactId>ejb's-artifact-id</dep:artifactId>
<dep:type>jar</dep:type>
</dep:dependency>
</dep:dependencies>
</dep:environment>
<context-root>your-web-app's-context-root</context-root>
<nam:ejb-ref xmlns:nam="http://geronimo.apache.org/xml/ns/naming-1.1">
<nam:ref-name>ejb/ModuleFactory</nam:ref-name>
<nam:ref-link>ModuleFactory</nam:ref-link>
</nam:ejb-ref>
</web-app>
I am assuming you are deploying on Geronimo 1.1. For higher versions you
will have to change the xsd versions above to web-1.1, deployment-1.2 &
naming-1.2.
After successful deployment of EJB JAR I tried to create proper web.xml file
for my WAR application.
In WEB-INF/web.xml I wrote:
<ejb-ref>
<ejb-ref-name>ejb/ModuleFactory</ejb-ref-name>
<ejb-ref-type>Session</ejb-ref-type>
<home>org.xh.dataweaver.common.ejb.ModuleFactoryHome</home>
<remote>org.xh.dataweaver.common.ejb.ModuleFactory</remote>
<ejb-link>ModuleFactory</ejb-link>
</ejb-ref>
Don't know if specifying <ejb-link> here would help. Try with an <ejb-ref>
element in geronimo-web.xml as above and see if it solves the problem.
But when I'm deploying WAR I receive:
Could not find an EJB for reference ejb/ModuleFactory to a remote session
bean that has the home interface
org.xh.dataweaver.common.ejb.ModuleFactoryHome and the remote interface
org.xh.dataweaver.common.ejb.ModuleFactory
what am I doing wrong?
I read http://cwiki.apache.org/GMOxDOC11/ejb-sample-application.html and
http://cwiki.apache.org/GMOxDOC11/very-simple-session-ejb-example.html
but I still don't see the error in my descriptors...
For more info refer this
http://www.chariotsolutions.com/geronimo/geronimo-1.1/geronimo-html-toc.html
thanks in advance for help
best regards
Lukasz
------------------------------
Yahoo! Answers - Get better answers from someone who knows. Try it
now<http://uk.answers.yahoo.com/;_ylc=X3oDMTEydmViNG02BF9TAzIxMTQ3MTcxOTAEc2VjA21haWwEc2xrA3RhZ2xpbmU>
.