わかりませんが、@Inject オブジェクトは ManagedService 内の Weld で初期化されていません。私の例は次のようになります。
@ManagedService(path = "/chat") public class EntryPointWS {
private final Logger logger = LoggerFactory.getLogger(EntryPointWS.class);
@Inject private ServiceFactory factory;
}
同じプロジェクトまたはコード、通常のサーブレットを使用して Weld にアクセスすると、オブジェクトが初期化されます。また、Tomcat 8で実行していますが、サーブレットインジェクションでも問題なく動作します。また、ServiceFactory には @ApplicationScoped というアノテーションが付けられています。
明確にするために、さらにいくつかのポイントを追加すると、
- org.atmosphere.cdi.CDIObjectFactory (cdi pom から) は、
- @Inject は AtmosphereInterceptorServices でも機能しません。