Web services JavaEE6WebService和CDI注入
这是我从JavaEE5迁移中得到的一个澄清问题。我目前正在开发一个打包在WAR文件中的JavaEE6Web服务,我想知道是否有可能在其上使用CDI。我见过一些使用Web services JavaEE6WebService和CDI注入,web-services,java-ee-6,cdi,Web Services,Java Ee 6,Cdi,这是我从JavaEE5迁移中得到的一个澄清问题。我目前正在开发一个打包在WAR文件中的JavaEE6Web服务,我想知道是否有可能在其上使用CDI。我见过一些使用@Stateless注释的例子,这在战争中是不可能做到的(据我所知) 目前的执行情况: @WebService public class MyService{ @Inject HelloTeller teller: @WebMethod public String sayHello(){
@Stateless
注释的例子,这在战争中是不可能做到的(据我所知)
目前的执行情况:
@WebService
public class MyService{
@Inject
HelloTeller teller:
@WebMethod
public String sayHello(){
teller.sayHello();
}
}
注意:另一种方法是专门为此web服务创建一个EJB模块。在EE6中,您应该能够在战争中使用SLSB作为JAX-WS端点。您可以从CDI注入EJB、请求范围和应用程序范围的bean。我已经尝试过,但注入的字段总是空的。我可以让它在单独的纯ejb项目中工作,但不能在WAR中工作。有arquillian测试或简单的WAR/github项目吗?@Timoteo Ponce:您的WEB-INF目录中有beans.xml文件吗?没有CDI,CDI就不起作用。添加这个文件,人们常常会忘记……有趣的是,这种方法在JBoss-7.0.1中失败了,但同样的代码在JBoss-7.1.1.7.0.1中运行得很好。1是唯一经过web配置文件认证的,7.1是完整的配置文件。这就是你的区别。