我正在尝试在 Weblogic 12c 中部署该应用程序。在部署过程中,我收到以下错误
weblogic.management.DeploymentException: weblogic.application.naming.ReferenceResolutionException: [J2EE:160092]Error: The ejb-link "BeanClass" declared in the ejb-ref or ejb-local-ref "...BeanClassService/beanClass" in the module "....EJB.jar" is ambiguous. Qualify this ejb-link to remove the ambiguity.
代码:
IBeanClass.java
@Local
public interface IBeanClass {}
BeanClass.java
@Stateless(name = "BeanClass")
@PermitAll
public class BeanClass implements IBeanClass { ...... }
IBeanClassService.java
@Local
public interface IBeanClassService { ......... }
BeanClassService.java
@Stateless(name = "BeanClassService")
public class BeanClassService implements IBeanClassService {
@EJB(beanName = "BeanClass")
private IBeanClassService beanclass;
... }
我正在从 Web 应用程序项目调用 EJB:
ClientClass.java
public class ClientClass{ ....
@EJB(beanName = "BeanClassService")
private IBeanClassService beanclass;
..... }
代码在 weblogic10 中工作正常,但现在在 weblogic 12 中出现异常。请帮助解决此问题。
最佳答案
BeanClass
不是 IBeanClassService
,因此即使按照基本的 java 约定,您也无法将 IBeanClass
对象分配给该变量,更不用说将 EJB 注入(inject)到该位置了。你应该拥有的是
@EJB(beanName = "BeanClass")
private IBeanClass beanclass;
关于java - Weblogic12c部署EJB不明确错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25282983/