在CDI / Weld下使用Apache CXF的JAX-WS

时间:2015-10-29 15:20:51

标签: cxf jax-ws weld

我在CDI下看到了其他关于CXF的问题,但它们似乎都适用于JAX-RS风格的Web服务。

此配置中是否可以使用JAX-WS?如果没有,我如何在非EE容器(Tomcat 8)中使用CDI / Weld公开JAX-WS服务?

2 个答案:

答案 0 :(得分:1)

如果您想在Tomcat中使用CDI和JAX-WS,那么最简单的方法就是使用Apache TomEE

TomEE基本上是一个标准的Apache Tomcat,但是有大量的JavaEE库。它带来了一个完整的CDI容器,JAX-RS,JAX-WS等。 对于JAX-WS,您应该使用' plus'变体。

如果你想要它实际上只是嵌入式或小型(大小,没有电源),那么你也可以看看Apache Meecrowave并将CXF的JAX-WS部分捆绑到它。

Meecrowave是一种基于EE8技术的小型(9MB)应用服务器,可以单独使用或嵌入(通过Meecrowave#bake())。它是纯粹的Apache: Tomcat(Servlets-4.0),OpenWebBeans(CDI-2.0),Johnzon(JSON-P_1.1,JSON-B_1.0),CXF,log4j2。

答案 1 :(得分:0)

首先,您必须在tomcat上启用CDI。请参阅here

就我而言,@Inject@WebService的课程无效,但我可以使用CDI.current().select(MyClass.class).get()注入。

但它在@PostConstruct上无效,但你可以在@WebMethod内使用它。

[注意]我使用的是Metro而不是Apache CXF

相关问题