【发布时间】:2017-05-12 19:47:13
【问题描述】:
我在 Weblogic 服务器上有一个应用程序。 我在将 RESTWEBservice 中的 EJB 注入 SOAPwebservice 时遇到问题。 这个应用程序有几个模块。现在只有三个是重要的。
部署如下所示:
应用
- API (JAR)
- SOAPWebService (WAR)
- RESTWebService(WAR)
两个 Web 服务都内置了 API。 这是课程的重要部分。 我要注入的 RestWebservice EJB:
@Local(EJBSOAPinterface.class)
@Stateless(mappedName = "RESTCLASS", name="RESTCLASS")
public class RESTCLASS implements EJBSOAPinterface{...}
两个模块使用的API接口:
@Local
public interface EJBSOAPinterface{....}
想要注入 EJB 的 SOAP webserviceModule
public SOAPCLASS {
@EJB(lookup="JNDINAME..")
EJBSOAPinterface ejb;
......}
我尝试在界面和 EJB 上同时使用 @Local 和 @Remote。它不起作用。
我也试过这个来注入 EJB
public SOAPCLASS{
@EJB(name="RESTCLASS")
EJBSOAPinterface ejb;
.....}
它也不起作用。 问题是我的 SOAPCLASS 不会因为注入而部署。 根据我的操作方式,我会得到不同的例外。但目前我得到了
java.lang.InstantiationException:创建名称为“.....”的 bean 时出错 .....依赖注入失败:找不到关于类接口“.....”的bean定义
我对 java 有点陌生。
【问题讨论】:
-
你用了什么 jndi 名字?在启动期间应该有一些输出给出
EJBSOAPinterface的可用 jndi 名称,你应该全部尝试。 -
我正在检查 weblogic Server 上的绑定名称并使用该名称。它类似于 RESTCLASS#INTERFACEPACKETNAME.EJBSOAPinterface
-
应该还有一些其他名称,包括 .war 名称(如果有的话,还有 .ear)
-
我确实得到了另外 2 个绑定名称。来自 EJB 类和接口类的 gradle。
标签: java jakarta-ee dependency-injection