我在Weblogic Server上有一个应用程序。 我有一个问题,从我的RESTWEBservice注入EJB到我的SOAPwebservice。 该应用程序有几个模块。现在只有三个是重要的。
部署如下所示:
应用
两个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的新手。任何帮助都会有所帮助!关于如何解决这个问题! 谢谢!
答案 0 :(得分:0)
更新 - 已解决。 我确实在界面上放了@Remote而不是@Local。 EJB本身也是如此。我拥有的JNDI名称是正确的(RESTCLASS#INTERFACEPACKETNAME.EJBSOAPINTERFACE)。
问题在于,当我在WLServer上部署应用程序时,我在RESTCLASS之前部署了SOAPCLASS。 这意味着它无法找到任何JNDI名称。因为它还没有建成。 我只是改变了那些2的部署顺序,它立即起作用。 谢谢!