Details
-
Bug
-
Status: Open
-
Critical
-
Resolution: Unresolved
-
2.2.1
-
None
-
Security Level: public (Regular issues)
-
None
-
Windows 7
Description
I have created a simple project that defines a Remote Stateless EJB:
@Remote
public interface BeanService {
public String hello(String name);
}
@Stateless
public class BeanImpl implements BeanService {
@Resource(name="who")
private String who;
public String hello(String name) {
return MessageFormat.format("Hello
from
{1}.", name, who);
}
}
I also created the deployment descriptor and plan files:
ejb-jar.xml:
<?xml version="1.0" encoding="UTF-8"?>
<ejb-jar
version="3.0"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd">
<enterprise-beans>
<session>
<ejb-name>BeanImplA</ejb-name>
<mapped-name>BeanImplA</mapped-name>
<business-remote>sample.BeanService</business-remote>
<ejb-class>sample.BeanImpl</ejb-class>
<env-entry>
<env-entry-name>who</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>BeanImplA</env-entry-value>
</env-entry>
</session>
<session>
<ejb-name>BeanImplB</ejb-name>
<mapped-name>BeanImplBB</mapped-name>
<business-remote>sample.BeanService</business-remote>
<ejb-class>sample.BeanImpl</ejb-class>
<env-entry>
<env-entry-name>who</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>BeanImplBB</env-entry-value>
</env-entry>
</session>
</enterprise-beans>
</ejb-jar>
openejb-jar.xml:
<?xml version="1.0" encoding="windows-1252"?>
<openejb-jar
xmlns="http://openejb.apache.org/xml/ns/openejb-jar-2.2"
xmlns:sys="http://geronimo.apache.org/xml/ns/deployment-1.2"
xmlns:nam="http://geronimo.apache.org/xml/ns/naming-1.2"
xmlns:app="http://geronimo.apache.org/xml/ns/j2ee/application-2.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://openejb.apache.org/xml/ns/openejb-jar-2.2 http://geronimo.apache.org/schemas-2.2/openejb-jar-2.2.xsd">
<sys:environment>
<sys:moduleId>
<sys:groupId>sample</sys:groupId>
<sys:artifactId>multiple-ejbs</sys:artifactId>
<sys:version>1.0.0</sys:version>
<sys:type>jar</sys:type>
</sys:moduleId>
</sys:environment>
<enterprise-beans>
<session>
<ejb-name>MyBeanA</ejb-name>
<jndi-name>MyBeanA</jndi-name>
</session>
<session>
<ejb-name>MyBeanB</ejb-name>
<jndi-name>MyBeanBB</jndi-name>
</session>
</enterprise-beans>
</openejb-jar>
And a simple web service class to test the deployed EJB:
@WebService(
name="SampleWS",
portName="SampleWS",
serviceName="SampleWS")
@Stateless()
public class SampleWS {
private InitialContext ic;
@PostConstruct
protected void postConstruct() {
try
catch (NamingException ex)
{ ex.printStackTrace(); }}
@WebMethod
public void lookup(@WebParam String name) {
try
catch (Exception ex)
{ System.err.println("Error: " + ex.getMessage()); }}
}
I start geronimo with debug level logging and deploy the application:
2012-02-14 18:12:39,855 INFO [startup] Undeploying app: C:\Users\204071044\AppData\Local\Temp\geronimo-deployer983143051956019168.tmpdir\multiple-ejbs-1.0.0.jar
2012-02-14 18:12:39,903 INFO [DirectoryMonitor] Hot deployer notified that an artifact was removed: sample/multiple-ejbs/1.0.0/jar
2012-02-14 18:12:40,683 INFO [config] Configuring Service(id=DefaultStatelessContainer, type=Container, provider-id=Default Stateless Container)
2012-02-14 18:12:40,683 INFO [config] Configuring Service(id=DefaultStatefulContainer, type=Container, provider-id=Default Stateful Container)
2012-02-14 18:12:40,683 INFO [config] Configuring Service(id=DefaultSingletonContainer, type=Container, provider-id=Default Singleton Container)
2012-02-14 18:12:40,683 INFO [config] Configuring Service(id=DefaultBMPContainer, type=Container, provider-id=Default BMP Container)
2012-02-14 18:12:40,683 INFO [config] Configuring Service(id=DefaultCMPContainer, type=Container, provider-id=Default CMP Container)
2012-02-14 18:12:40,683 INFO [config] Configuring enterprise application: sample/multiple-ejbs/1.0.0/jar
2012-02-14 18:12:40,761 INFO [OpenEJB] Auto-deploying ejb BeanImplA: EjbDeployment(deployment-id=multiple-ejbs/BeanImplA)
2012-02-14 18:12:40,761 INFO [OpenEJB] Auto-deploying ejb BeanImplB: EjbDeployment(deployment-id=multiple-ejbs/BeanImplB)
2012-02-14 18:12:40,761 INFO [OpenEJB] Auto-deploying ejb BeanImpl: EjbDeployment(deployment-id=multiple-ejbs/BeanImpl)
2012-02-14 18:12:40,761 INFO [OpenEJB] Auto-deploying ejb SampleWS: EjbDeployment(deployment-id=multiple-ejbs/SampleWS)
2012-02-14 18:12:40,761 INFO [config] Enterprise application "sample/multiple-ejbs/1.0.0/jar" loaded.
2012-02-14 18:12:41,416 INFO [JAXWSServiceBuilder] Configuring EJB JAX-WS Web Service: SampleWS at /SampleWS/SampleWS
2012-02-14 18:12:43,601 INFO [startup] Assembling app: C:\Users\204071044\AppData\Local\Temp\geronimo-deployer2964695379050213700.tmpdir\multiple-ejbs-1.0.0.jar
2012-02-14 18:12:43,805 INFO [startup] Jndi(name=BeanImplA) --> Ejb(deployment-id=multiple-ejbs/BeanImplA)
2012-02-14 18:12:43,805 INFO [startup] Jndi(name=BeanImplBB) --> Ejb(deployment-id=multiple-ejbs/BeanImplB)
2012-02-14 18:12:43,805 INFO [startup] Jndi(name=BeanImplRemote) --> Ejb(deployment-id=multiple-ejbs/BeanImpl)
2012-02-14 18:12:43,805 INFO [startup] Jndi(name=SampleWSLocalBean) --> Ejb(deployment-id=multiple-ejbs/SampleWS)
2012-02-14 18:12:43,805 INFO [startup] Created Ejb(deployment-id=multiple-ejbs/BeanImplB, ejb-name=BeanImplB, container=DefaultStatelessContainer)
2012-02-14 18:12:43,820 INFO [startup] Created Ejb(deployment-id=multiple-ejbs/BeanImplA, ejb-name=BeanImplA, container=DefaultStatelessContainer)
2012-02-14 18:12:43,836 INFO [startup] Created Ejb(deployment-id=multiple-ejbs/BeanImpl, ejb-name=BeanImpl, container=DefaultStatelessContainer)
2012-02-14 18:12:43,836 INFO [startup] Created Ejb(deployment-id=multiple-ejbs/SampleWS, ejb-name=SampleWS, container=DefaultStatelessContainer)
2012-02-14 18:12:43,836 INFO [startup] Deployed Application(path=C:\Users\204071044\AppData\Local\Temp\geronimo-deployer2964695379050213700.tmpdir\multiple-ejbs-1.0.0.jar)
2012-02-14 18:12:44,023 INFO [ModuleDeployer] Deploying module: addressing-1.5.2 - file:/C:/Users/204071044/Software/DRMS/2.0/geronimo-tomcat6-javaee5-2.2.1/repository/org/apache/axis2/addressing/1.5.2/addressing-1.5.2.mar
2012-02-14 18:12:44,210 INFO [SupportedModesServiceImpl] Portlet mode 'edit' not found for portletId: '/plugin.Deployment!-87374526|0'
I tried various combinations of JNDI name to lookup this EJB with no success. According to the documentation, the name should be
{deploymentId} {interfaceType.annotationName}, so in this case, "multiple-ejbs/BeanImplARemote" should work for example. However, the output is an error:
Looking up multiple-ejbs/BeanImplARemote
Error: multiple-ejbs/BeanImplARemote