2012-04-11 7 views
0

Spring 1.6とHibernate 3.5を使用するアプリケーションで作業しています。JBoss 5.1:Spring @Resourceアノテーションが動作しない

これまでのところ私はJBoss 4.2.1を使用していましたが、すべてうまくいきました。

JBoss 5.1への移行中に、私は多くの問題に遭遇しました。その1つは、JBossがSpring @Resourceアノテーションを無視しているということです。私は、次の例外を取得:

java.lang.RuntimeException: mapped-name is required for serviceManager of deployment pol-1.0.war at org.jboss.web.tomcat.service.injection.WebResourceHandler.loadXmlResourceEnvRefs(WebResourceHandler.java:287) at org.jboss.web.tomcat.service.injection.WebResourceHandler.loadXml(WebResourceHandler.java:325) at org.jboss.web.tomcat.service.TomcatInjectionContainer.processMetadata(TomcatInjectionContainer.java:550) at org.jboss.web.tomcat.service.WebCtxLoader.start(WebCtxLoader.java:158)

それはいくつかのEJBなどの各@Resourceにマップ名を期待しています。

私は同様の質問を見てきましたが、彼らは例えばどんな答えずにいる。:

@Resource annotation not working properly with JBoss5.0.1

お知らせください。

アディは

答えて

1

実際にあなたの問題は、JBossが@Resource注釈を無視していないということである - それは春にそれらを残すのではなく、EJBルールに従ってそれらを処理しようとします。

おそらく、この機能はJBoss設定のどこかで無効にすることができますが、最も簡単な解決策は@Resource@Autowiredまたは@Injectに置き換えることです。

+0

ありがとうございます。私はSpring 3.0.5を使用しています。 @インジェクションはすぐに使えますか?または、SpringのドキュメントにあるようにJSR 330が必要ですか?もし私がそれを必要とすれば、どこでそれを手に入れますか?それはMavenで見つかるようです。 – adi

+0

@adi:Mavenの['javax.inject'](http://mvnrepository.com/artifact/javax.inject/javax.inject/1)です。 – axtavt

+0

ありがとうございました。そして、これを処理するためのJBossの修正方法に関するコメント? – adi

0

Javaアノテーションのようなサウンドは、名前空間のサポートが必要です。

@Spring:Resourceまたは@EJB:Resourceです。

オラクル、お聞きしますか?

Annotationsのネームスペースが不足していると、クラスパス内のライブラリの順序を変更して、Javaが最初に(または最後に)Springアノテーションを参照するようになる可能性があります。