2015-05-14 48 views
2

我不知道,但我的@Inject对象不是ManagedService内部初始化虚焊,我的例子是这样的,大气@ManagedService @Inject不工作

@ManagedService(path = "/chat") public class EntryPointWS { 
    private final Logger logger = LoggerFactory.getLogger(EntryPointWS.class); 
    @Inject private ServiceFactory factory; 
} 

相同的项目或代码,如果我使用普通的Servlet来访问Weld将为我初始化对象。另外,我在Tomcat 8上运行,但它在Servlet注入方面工作正常。另外,ServiceFactory被注释为@ApplicationScoped。

只是要清楚,要添加一些更多的积分,

  • org.atmosphere.cdi.CDIObjectFactory(从CDI POM)在
  • 定义的@Inject不AtmosphereInterceptorServices作为工作好。
+1

我发现CDI规范可是没有适当的范围内共享,当我们有WebSockets的,所以我打算使用Guice作为DI。 – Fahad

回答

0

是否启用了CDI扩展:https://github.com/Atmosphere/atmosphere/wiki/Configuring-Atmosphere的-类创世-和注射

- Jeanfrancois

+1

是的,我启用了,WIKI实际上提供了错误的信息,最新的2.3.1 CDIObjectFactory的实现与WIKI所说的不同。所以我包括POM DEP和更新在init-PARAM如下, \t \t \t \t \t​​org.atmosphere.cpr.objectFactory \t \t \t org.atmosphere.cdi.CDIObjectFactory \t \t Fahad

+1

而我使用2.3.1的气氛框架,那应该不是问题吧?在我看到的示例中有一个3.0.0-SNAPSHOT, – Fahad

+0

该项目的文档是一团糟 – kiltek