jboss에 적절한 클래스 로더 격리 설정을 사용하여 두 개의 귀를 배치했습니다. 데이터베이스에 대한 쿼리를 수행하는 Seam Bean 호출 스프링 빈이 잘 작동하지만 스프링 쿼츠 작업 빈이 호출되고 실행될 때 데이터베이스 쿼리를 실행하려고하면 스프링이 다른 ear의 최대 절전 모드 jar를 사용하고 예외가 throw되므로 문제가 발생합니다. ! 그것은 분명 봄철 클래스 로더 격리 문제입니다. 누구든지 그런 문제를 만났습니까? 격리를 보장하는 방법?jboss의 스프링 클래스 로더 격리 문제
1
A
답변
0
SEAM이 사용하고있는 Hibernate JAR은 JBOSS 클래스 로더에서 가져올 것입니다. JBOSS 클래스 로더는 EAR 클래스 로더보다 먼저 호출됩니다. SEAM이 JBOSS에 번들로 포함되어 있기 때문에 이러한 현상이 발생합니다.
EAR의 Spring은 다른 버전의 Hibernate JAR 또는 그 의존성을 사용하므로 충돌이 발생한다.
JBOSS에서 Hibernate JAR을 제거해야 응용 프로그램 서버 클래스 로더에서 더 이상 볼 수 없지만 SEAM이 손상 될 수 있습니다.
JBOSS가 응용 프로그램 서버에 EAR 구성의 서버 JAR에 대한 응용 프로그램 수준 JAR을 선호하도록 지시 할 수있는 방법이 있는지 확인할 수 있습니다.
0
JBoss 4.x를 사용하는 경우 deploy/ear-deployer.xml
파일에서 클래스 로더 격리가 활성화되어 있는지 확인하십시오.
<server>
<mbean code="org.jboss.deployment.EARDeployer" name="jboss.j2ee:service=EARDeployer">
<attribute name="Isolated">true</attribute>
<attribute name="CallByValue">false</attribute>
<attribute name="EnablelibDirectoryByDefault">true</attribute>
</mbean>
</server>
이렇게하면 한 EAR의 클래스가 다른 EAR의 클래스에서 볼 수 없게됩니다. 어떤 이유로 기본값은 Isolation=false
입니다.
충분할 수 있습니다.
<jboss-app>
<loader-repository>MyCompany:loader=MyApplication</loader-repository>
</jboss-app>
나는 이것이 않는다는 것을 확실하지 않다 또는 무엇을 사용하지만, 어떤 경우에는 강화 같다 : 그러나이 같은 것을 포함, 귀의 META-INF
디렉토리에 jboss-app.xml
파일을 추가 할 수 있습니다 EAR 간의 격리.
관련 문제
- 1. 문제 만들기 cutom 클래스 로더
- 2. 디버깅 osgi 클래스 로더 문제
- 3. 자바 JBoss의 보안 문제
- 4. 배포 취소시 JBoss의 스프링 타이머가 멈추지 않습니다.
- 5. Websphere 6.1 버전의 클래스 로더 문제
- 6. 통합 된 ant - taskdef 클래스 로더 문제
- 7. 클래스 로더 문제 Tomcat 6 javagent
- 8. 로더 문제
- 9. 웹 서비스 (CXF) 및 Jboss의 Java 클래스 경로 문제
- 10. JBoss의 Tomcat에 대한 액세스 문제
- 11. 자바 사용자 정의 클래스 로더 : 일부 클래스는 내 클래스 로더
- 12. 자바 동적 클래스 로더
- 13. .NET 클래스 로더 - 무엇입니까?
- 14. 클래스 로더 처분
- 15. 확장 클래스 로더
- 16. C++ 로더 클래스
- 17. 클래스 로더 특정 속성
- 18. 는 변경 클래스 로더
- 19. 자바 클래스 로더
- 20. WEBLOGIC SERVER의 클래스 로더
- 21. 자바 클래스 로더 튜토리얼
- 22. 자바 보안 클래스 로더
- 23. 스프링 주석 기반 트랜잭션에서 격리 수준 설정
- 24. 스프링 OSGi 클래스 경로 리소스 문제
- 25. GLSL 쉐이더 로더 문제
- 26. SQL * 로더 문제
- 27. 플래시 로더 문제
- 28. 페이지 로더 문제
- 29. 젠드 로더 문제
- 30. 사용자 정의 클래스 초기화를위한 경량급 클래스 로더?