2012-04-11 2 views
0

Java 1.6과 Spring 3 및 Hibernate 3.5를 사용하는 응용 프로그램에서 작업하고 있습니다.JBoss 5.1 : Spring @Resource annotation이 작동하지 않습니다.

지금까지 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)

그것은 일부 EJB와 같은 각 @Resource에 대한 매핑 이름을 기대하고있다.

나는 비슷한 질문을 본 적이 있지만

@Resource annotation not working properly with JBoss5.0.1

은 알려 주시기 바랍니다 어떤 대답 예컨대 : 않고 있습니다.

안녕은

답변

1

사실 문제는 보스가 @Resource 주석을 무시하지 않는다는 것입니다 - 그것은 봄에 떠나는 대신 EJB 규칙에 따라이를 처리하려고합니다.

아마이 기능은 JBoss 구성에서 어딘가에서 비활성화 할 수 있지만 가장 간단한 해결책은 @Resource@Autowired 또는 @Inject으로 바꾸는 것입니다.

+0

감사합니다. Spring 3.0.5를 사용하고 있습니다. @Inject가 곧바로 작동합니까? 또는 Spring 문서에서 말하는 것처럼 JSR 330이 필요합니다. 내가 그것을 필요로한다면, 나는 그것을 어디서 얻을 것인가? 위장 할 수 없습니다 .. – adi

+0

@adi : Maven의 ['javax.inject'] (http://mvnrepository.com/artifact/javax.inject/javax.inject/1)입니다. – axtavt

+0

감사합니다. 그리고 이것을 처리하기 위해 JBoss를 수정하는 방법에 대한 의견이 있으십니까? – adi

0

자바 주석과 같은 사운드는 네임 스페이스를 지원해야합니다.

그러면 @Spring : Resource 또는 @EJB : Resource가됩니다.

오라클, 듣고 있습니까?

Annotations의 네임 스페이스가 짧으면 클래스 경로에서 라이브러리의 순서를 변경해 봄으로써 java가 원하는 결과를 제공하는 Spring 어노테이션 (처음 또는 마지막)을 볼 수있다.

관련 문제