首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >跨应用程序的EJB查找失败

跨应用程序的EJB查找失败
EN

Stack Overflow用户
提问于 2015-02-24 05:03:50
回答 1查看 592关注 0票数 0

我尝试让war使用@EJB注释,但在运行时遇到异常。

我还没有使用任何描述符,因为我尽量保持简单。

战争是这样的:

代码语言:javascript
复制
@EJB(lookup="java:global.myear.myejb-0.0.1-SNAPSHOT.MyEjbImpl!pl.klarki.myejbclient.MyEjb" )
private MyEjb ejb;

下面是我得到的异常:

代码语言:javascript
复制
    Caused By: com.bea.core.repackaged.springframework.beans.factory.NoSuchBeanDefinitionException: 
No unique bean of type [pl.klarki.myejbclient.MyEjb] is defined:
 No beans of type pl.klarki.myejbclient.MyEjb; owner=com.oracle.pitchfork.inject.PitchforkGenericApplicationContext@22c86d85:
 display name [com.oracle.pitchfork.inject.PitchforkGenericApplicationContext@22c86d85]; startup date [Mon Feb 23 21:50:23 CET 2015]; parent: com.bea.core.repackaged.springframework.context.support.GenericApplicationContext@43d7e0fc
        at com.oracle.pitchfork.inject.Jsr250Metadata.getUniqueInstanceOfType(Jsr250Metadata.java:338)
        at com.oracle.pitchfork.inject.Jsr250Metadata.resolveByType(Jsr250Metadata.java:332)
        at com.oracle.pitchfork.inject.Jsr250Metadata.resolve(Jsr250Metadata.java:265)
        at com.oracle.pitchfork.inject.Jsr250Metadata.applyInjections(Jsr250Metadata.java:218)
        at com.oracle.pitchfork.inject.Jsr250Metadata.inject(Jsr250Metadata.java:209)

下面的方法可以工作,但不能令人满意,因为我想使用注释:

代码语言:javascript
复制
ejb = (MyEjb) new InitialContext().lookup("java:global.myear.myejb-0.0.1-SNAPSHOT.MyEjbImpl!pl.klarki.myejbclient.MyEjb");

当我在@EJB和@Stateless中都指定了mappedName时,我也可以让它工作,但我在这里读到mappedName不是那么酷:http://thegreyblog.blogspot.com/2010/09/introduction-to-ejb-30-injection-and.html

我使用的映射名称如下:

在战争中:

代码语言:javascript
复制
@EJB(mappedName="someMappedName")
private MyEjb ejb;

在耳朵里:

代码语言:javascript
复制
@Stateless(mappedName="someMappedName")
public class MyEjbImpl implements MyEjb {

你能给我一些建议吗?我应该怎么做才能让它与@EJB(lookup)一起工作?或者你可以向我保证mappedName没有那么糟糕,可以使用它吗?

EN

回答 1

Stack Overflow用户

发布于 2015-02-24 13:34:15

JNDI映射名称对我来说看起来很陌生。在部署服务器端应用程序之后,您能检查一下为您的EJB建立的映射名称服务器是什么吗?尝试将global之后的指针改为斜杠,即"java:global/server“。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28683395

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档