JBoss 5.1: Spring @Resource annotation not working

断了今生、忘了曾经 提交于 2019-12-13 06:24:58

问题


I am working on an application using Spring 3 and Hibernate 3.5 with Java 1.6.

So far I've been using JBoss 4.2.1 and everything was fine.

Now while migrating to JBoss 5.1, I encountered lot of issues. One of them is that JBoss is ignoring the Spring @Resource annotation. I get the following exception:

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)

It expects mapped-name for each @Resource like some ejb.

I've seen similar questions but they are without any answer e.g.:

@Resource annotation not working properly with JBoss5.0.1

Please advise.

Adi


回答1:


Actually your problem is that JBoss doesn't ignore @Resource annotations - it tries to handle them according to EJB rules instead of leaving them to Spring.

Perhaps this feature can be disabled somewhere in JBoss configuration, but the simpliest solution would be to replace @Resource with @Autowired or @Inject.




回答2:


Sounds like java annotations need namespace support.

Then it would be @Spring:Resource or @EJB:Resource.

Oracle, are you listening?

Short of namespace for Annotations, you could possibly try changing the order of the libraries in your classpath so java would see the Spring annotations first (or last), whichever ends up providing the desired outcome.



来源:https://stackoverflow.com/questions/10105155/jboss-5-1-spring-resource-annotation-not-working

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!