EJB抽象远程bean

时间:2014-09-24 08:14:40

标签: java java-ee glassfish ejb

我正在开发部署在glassfish-3服务器上的Java6 web-app(.war)。我的逻辑的一部分,关心数据库连接等是另一个项目的一部分 - .ear与我的应用程序一起部署。这一切都运行良好,直到我不得不为注入逻辑创建另一层抽象而不是简单的托管bean。也许代码会解释得最好。

我的网络应用:

public class OtherClass  {

    @EJB(name = "IClass", mappedName = "A")
    private IClass iClass;

    }
}

.ear已部署应用:

public abstract class AbClass {...}

@Stateless(name = "IClass", mappedName = "A")
public class A extends AbClass implements IClass {...}

@Stateless(name = "IClass", mappedName = "B")
public class B extends AbClass implements IClass {...}

常见导入(另一个项目作为maven依赖项):

@Remote
public interface IClass extends Serializable {...}

然而,在尝试解决@EJB投掷时,这不起作用:

  

引起:javax.naming.NameNotFoundException:找不到#.com.example.IClass

     

...

     

引起:java.lang.IllegalStateException:异常尝试注入Remote ejb-ref name = IClass,Remote 3.x interface = com.example.IClass,ejb-link = null,lookup =,mappedName = A,jndi -name =,refType =类com.example.ItherClass中的Session:查找失败的' java:comp / env / IClass'在SerialContext中[myEnv = {java.naming.factory.initial = com.sun.enterprise.naming.impl.SerialInitContextFactory,java.naming.factory.state = com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl, java.naming.factory.url.pkgs = com.sun.enterprise.naming}

我知道我可以解决这个问题,例如创建一个工厂,但我觉得这种方法应该有效。

0 个答案:

没有答案