2016-12-15 8 views
0

サーブレットにアクセスするときに、単純なCDIマネージドBeanをサーブレットに挿入すると(生成されたコードサンプル "SimpleServlet"から開始)、Bluemix Libertyはこのエラーを記録します。単純なCDIマネージドBeanをサーブレットに挿入するときにBluemix Libertyにエラーが発生する

「SimpleServletのはwasdev.sample.servlet.SimpleServletは、Beanのアーカイブではありません。クラス として注入することはできません」

これは、発見とbeans.xmlファイルは「すべては」used.Theターゲットはエラーのため、この

The target with bean.xml

+0

あなたのコードはどのように見えますか? –

+0

public class SimpleServlet extends HttpServlet { \tプライベートstatic final long serialVersionUID = 1L; \t @Inject \t private TestService svc; –

答えて

2

理由のように見える場合でもそうである:エラーが原因である

ビルドされたアプリケーションwarにbeans.xmlを持たないためにJavaHelloWorldApp.war

現在、パフォーマンス上の理由から、C言語を使用するにはbeans.xmlファイルが必要ですDI on Bluemix。

ソリューション:

は、コードを建て/src/main/webapp/WEB-INF/beans.xml内部bean.xmlをコピーしました。

これにより、bean.xmlがwarファイル、つまりJavaHelloWorldApp.warにパッケージされ、エラーが解決されたことが確認されました。

+0

問題はbeans.xmlがあなたの戦争になかったことでしたか?あなたがbeans.xmlがそこにあったとあなたが述べた質問に... –

+0

はい、bean.xmlはwarファイル内にあるはずです。私は参照のために以下のスナップショットを提供しています。 –

0

beanem.xmlがBluemixに正しくデプロイされていることを確認するには、BluemixコンソールでJavaアプリケーションを選択し、クリックしてjavaアプリケーションダッシュボードを開きます。 ランタイムを選択し、ファイルタブを選択し、下記のスナップショットに示すように、bean.xmlがWEB-INF内に正しく展開されていることをブラウズして確認します。

Bean.xml deployed in Liberty Bluemix

関連する問題