2012-04-11 4 views
0

Я работаю над приложением с использованием Spring 3 и Hibernate 3.5 с Java 1.6.JBoss 5.1: Spring @Resource аннотация не работает

До сих пор я использовал JBoss 4.2.1, и все было в порядке.

Теперь, перейдя на JBoss 5.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)

Он ожидает, отображенный-имя для каждого @Resource, как некоторые EJB.

Я видел подобные вопросы, но они без ответа т.д .:

@Resource annotation not working properly with JBoss5.0.1

Пожалуйста посоветуйте.

Adi

ответ

1

На самом деле ваша проблема заключается в том, что JBoss не игнорировать @Resource аннотаций - он пытается справиться с ними в соответствии с правилами EJB вместо того, чтобы оставить их весной.

Возможно, эту функцию можно отключить где-то в конфигурации JBoss, но самым простым решением было бы заменить @Resource на @Autowired или @Inject.

+0

Спасибо. Я использую Spring 3.0.5. Будет ли @Inject работать сразу? Или мне нужен JSR 330, как говорят в документах Spring. Если мне это нужно, откуда я его получу? возможно, найти его на maven .. – adi

+0

@adi: Это ['javax.inject'] (http://mvnrepository.com/artifact/javax.inject/javax.inject/1) на Maven. – axtavt

+0

спасибо. И любые комментарии о том, как исправить JBoss, чтобы справиться с этим? – adi

0

Кажется, что аннотациям java требуется поддержка пространства имен.

Тогда это будет @Spring: Resource или @EJB: Resource.

Оракул, вы слушаете?

Недостаточно пространства имен для аннотаций, вы можете попробовать изменить порядок библиотек в вашем пути к классам, чтобы java сначала увидела аннотации Spring (или последние), в зависимости от того, что заканчивается тем, что дает желаемый результат.

Смежные вопросы