一个EJB中的方法将在另一个EJB中调用Web服务。它们是否需要打包在同一个EAR中,还是可以单独部署Web服务提供程序(在WAR中)?如果两个EJB分开部署,依赖注入(通过@WebServiceRef
注释完成)是否有效?
谢谢!
答案 0 :(得分:0)
它们是否需要打包在同一个EAR中,还是可以单独部署Web服务提供程序(在WAR中)?
这取决于您打算如何部署EJB。如果要将它们部署在同一个EAR文件中,因此,在同一个容器中,我会认为@WebServiceRef
注释是无意义的,并且会拖累性能。您也可以注入其他EJB,而不是在其中注入JAX-WS代理。
如果要将这些EJB分开并在WAR文件中部署其中一个EJB(提供Web服务的EJB),则可以在Java EE 6容器中执行此操作。
如果两个EJB分开部署,依赖注入(通过@WebServiceRef注释完成)是否有效?
是的,只要您在托管环境中部署客户端(包括应用程序客户端容器,Web容器和EJB容器),依赖注入就会起作用。就客户端EJB而言,容器将在运行时为Web服务提供代理。所有调用都将委派给代理,它将向实际的Web服务发出所需的HTTP请求,并在处理响应后返回相应的对象。