【问题标题】:Java EE 6 WebService and CDI injectionJava EE 6 WebService 和 CDI 注入
【发布时间】:2012-03-24 02:10:25
【问题描述】:

这是我从 Java EE 5 迁移中得到的一个澄清问题。我目前正在开发一个打包在 WAR 文件中的 Java EE 6 Web 服务,我想知道是否可以在其上使用 CDI。我已经看到了一些使用 @Stateless 注释的示例,这在 WAR 中是不可能的(据我所知)。

当前实现:

@WebService
public class MyService{

    @Inject 
    HelloTeller teller:

    @WebMethod
    public String sayHello(){
        teller.sayHello();
    }
}

注意:另一种方法是专门为此 Web 服务创建一个 ejbModule

【问题讨论】:

    标签: web-services java-ee-6 cdi


    【解决方案1】:

    在 EE6 中,您应该能够在战争中使用 SLSB 作为 JAX-WS 端点。您可以从 CDI 注入 EJB、请求范围和应用范围 bean。

    【讨论】:

    • 我试过了,但是注入的字段总是空的。我可以让它在一个单独的纯 ejb 项目中工作,但不能在 WAR 中工作。
    • 有一个 arquillian 测试或简单的 war/github 项目吗?
    • @Timoteo Ponce:您的 WEB-INF 目录中有 beans.xml 文件吗?没有,CDI 不起作用。添加这个文件人们经常忘记...
    • 有趣,这种方法在 JBoss-7.0.1 中失败了,但相同的代码在 JBoss-7.1.1 中完美运行。
    • 7.0.1 仅通过网络配置文件认证,7.1 为完整配置文件。这就是你的区别。
    猜你喜欢
    • 2011-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多