2017-08-01 8 views
3

からCDIとBeanをインスタンス化しようとすると、私は実行webアプリケーション

@Stateless 
public class TestBean() { 
    @Inject 
    AnotherBean bean2; 
    public String getThis() { 
     return bean2.getAString(); 
    } 
} 

wildfly 10.1.0上で実行されている(このjarに依存性)webアプリケーションのように定義された@Statelessクラスを含むJARを有しますこのBeanをインスタンス化してそのメソッドを使用したいと考えています。 Webアプリケーションの呼び出しメソッドは、(他のいくつかのWebアプリケーションによって呼び出される)休止エンドポイントでも、通常のJavaメソッドでもかまいません。

TestBeanをインスタンス化する最良の方法は何ですか?私はいくつかの解決策を試しましたが、どれもうまくいきませ例えば、この1

Building a CDI 2 standalone

この1

Does CDI work for regular Java application?

については

これはよくどこかで説明されている場合、私は疑問に思って、私はCDIに新しいですし、それがどのように動作しますか?本当に明確ではない

+0

を動作するはずです、それは 'beans.xml'ファイルを持っていますか? –

+0

はい、すべてのBeanをスキャンするbeans.xmlセットがあります。 – JennyToy

答えて

0

そのは何をあなたの質問であるが、あなたはJAX-RSのリソースを持っている場合は、WARファイルで、これはちょうど

@Path("/somePath") 
@RequestScoped 
public class SomeResource { 
    @Inject 
    private TestBean testBean; 
    @GET 
    public String doGet() { 
     return testBean.getThis(); 
    } 
} 
+0

問題は、SomeResourceをインスタンス化し、RESTエンドポイントではなくdoGetを呼び出す方法があるかどうかです。単純なAPIのJavaメソッドです。 – JennyToy

関連する問題