0

Spring3とHibernate3.5をJava1.6で使用するアプリケーションに取り組んでいます。

これまでJBoss4.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ごとにmapped-nameが必要です。

私は同様の質問を見ましたが、答えはありません。例:

@ResourceアノテーションがJBoss5.0.1で正しく機能しない

お知らせ下さい。

アディ

4

2 に答える 2

1

実際の問題は、JBossがアノテーションを無視しないことです。@ResourceアノテーションをSpringに任せるのではなく、EJBルールに従って処理しようとします。

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

于 2012-04-11T12:20:27.953 に答える
0

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

その場合、@ Spring:Resourceまたは@EJB:Resourceになります。

オラクル、聞いてる?

アノテーションの名前空間が不足している場合は、クラスパス内のライブラリの順序を変更して、JavaがSpringアノテーションを最初(または最後)に表示するようにすることができます。

于 2014-03-19T20:48:31.887 に答える