从servlet调用EJB

时间:2015-10-29 07:48:39

标签: servlets jboss ejb jndi lookup

我使用JBOSS Develper Studio 8,基于jre 1.7的JBOS服务器7.1我有一个J2EE项目(名为Dnevnik)和ejb(DnenvikEJB)以及web项目(DnevnikWEB)。我想通过jndi查询从servlet调用ejb。 EJB的名称是FasadaPrvi,他的远程接口是FasadaPrviRemote。我对所有这些代码变体都有问题:

InitialContext context = new InitialContext();
FasadaPrvi fasadaPrvi = (FasadaPrvi)context.lookup("java:comp/env/FasadaPrvi");

InitialContext context = new InitialContext();
FasadaPrvi fasadaPrvi = (FasadaPrvi)context.lookup("java:app/DnevnikEJB/FasadaPrvi");

InitialContext context = new InitialContext();
FasadaPrvi fasadaPrvi = (FasadaPrvi)context.lookup("java:global/DnevnikEJB/FasadaPrvi");

InitialContext context = new InitialContext();
FasadaPrvi fasadaPrvi = (FasadaPrvi)context.lookup("java:global/Dnevnik/DnevnikEJB/FasadaPrvi!sr.co.FasadaPrviRemote");

有谁知道问题在哪里!?

1 个答案:

答案 0 :(得分:0)

来自Jboss-wiki:https://docs.jboss.org/author/display/AS71/JNDI+Reference https://docs.jboss.org/author/display/AS71/Remote+EJB+invocations+via+JNDI+-+EJB+client+API+or+remote-naming+project

Context ctx = new InitialContext(jndiProps);
// lookup the bean     Foo
beanRemoteInterface = (Foo) ctx.lookup("myapp/myejbmodule/FooBean!org.myapp.ejb.Foo");
String bar = beanRemoteInterface.sayBar();

和:

ejb:myapp/myejbjar/MyEjbName!com.test.MyRemoteInterface
ejb:myapp/myejbjar/MyStatefulName!comp.test.MyStatefulRemoteInterface?stateful

此外,在部署EJB期间,Jboss会向您显示有关您的bean可见的JNDI名称的信息。

09:25:07,852 INFO  [org.jboss.as.ejb3.deployment.processors.EjbJndiBindingsDeploymentUnitProcessor] (MSC service thread 1-4) JNDI bindings for session bean named RegistrationService in deployment unit subdeployment "MY_EJB-15.99.00.war" of deployment "MY_EAR-15.00.ear" are as follows:

    java:global/MY_EAR-15.00/MY_EJB-15.00/RegistrationService!foo.RegistrationService
    java:app/MY_EJB-15.00/RegistrationService!foo.RegistrationService
    java:module/RegistrationService!foo.RegistrationService
    java:global/MY_EAR-15.00/MY_EJB-15.00/RegistrationService
    java:app/MY_EJB-15.00/RegistrationService
    java:module/RegistrationService