J2EE Web服务提供者和消费者,必须在同一个EAR中?

时间:2011-06-22 13:59:49

标签: web-services java-ee

一个EJB中的方法将在另一个EJB中调用Web服务。它们是否需要打包在同一个EAR中,还是可以单独部署Web服务提供程序(在WAR中)?如果两个EJB分开部署,依赖注入(通过@WebServiceRef注释完成)是否有效?

谢谢!

1 个答案:

答案 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请求,并在处理响应后返回相应的对象。