[SPRING] spring-ws 클라이언트를 사용하는 동안 Jboss에서 스프링 클래스 로더 문제
SPRINGspring-ws 클라이언트를 사용하는 동안 Jboss에서 스프링 클래스 로더 문제
내 응용 프로그램을 Jboss에서 제대로 실행하고 있습니다. Spring webservice 클라이언트를 작성하려면 wsimport를 사용하여 클래스를 생성해야합니다. 나는 구성에서 다음을 썼다.
<bean id="messageFactory" class="org.springframework.ws.soap.saaj.SaajSoapMessageFactory">
<property name="messageFactory">
<bean class="com.sun.xml.messaging.saaj.soap.ver1_1.SOAPMessageFactory1_1Impl"/>
</property>
jboss에서? lib 나는 jboss-jaxws.jar, spring.jar ...을 가지고 있습니다. 이제 복사했습니다.
spring-ws-1.5.0.jar and saaj-impl-1.3.jar
하지만 다음과 같은 오류가 발생하고 있습니다 :
The Spring ContextLoaderListener we wrap threw on contextInitialized.
But for our having caught this error, the web application context would not have initialized.
org.springframework.beans.factory.BeanDefinitionStoreException: Unexpected exception parsing XML document from ServletContext resource [/WEB-INF/applicationContext.xml]; nested exception is java.lang.IllegalArgumentException: Class [org.apache.xbean.spring.context.v2.XBeanNamespaceHandler] does not implement the NamespaceHandler interface
Caused by:
java.lang.IllegalArgumentException: Class [org.apache.xbean.spring.context.v2.XBeanNamespaceHandler] does not implement the NamespaceHandler interface
at org.springframework.beans.factory.xml.DefaultNamespaceHandlerResolver.initHandlerMappings(DefaultNamespaceHandlerResolver.java:119)
이 오류를 해결하도록 도와주세요. 이러한 오류가 나는 단지 이러한 항아리를 유지 후지고 있습니다. 그러나 이것들은 새로운 코드를 실행하는 데 필요합니다. 그들을 피하는 방법을 제안 해주세요.
해결법
-
==============================
1.다음 내용으로 응용 프로그램에 대한 WEB-INF / jboss-web.xml 파일을 만들 수 있습니다
다음 내용으로 응용 프로그램에 대한 WEB-INF / jboss-web.xml 파일을 만들 수 있습니다
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE jboss-web PUBLIC "-//JBoss//DTD Web Application 4.2//EN" "http://www.jboss.org/j2ee/dtd/jboss-web_4_2.dtd"> <jboss-web> <class-loading java2ClassLoadingCompliance="false"> <loader-repository> myapp:loader=anyUniqueName <loader-repository-config>java2ParentDelegation=false</loader-repository-config> </loader-repository> </class-loading> </jboss-web>
이렇게하면 클래스 로더가 JBoss 라이브러리를 찾지 못하게됩니다. 단점이라면 WAR / lib 폴더에 모든 타사 jar 파일을 제공해야합니다.
이것은 4.2 버전에서 현재 사용중인 버전과 비슷한 것을 찾을 수 있습니다.
-
==============================
2.이것은 저에게 JAR의 두 버전이 CLASSPATH에 있음을 시사합니다. 아마도 하나는 서버 자체에 있고 다른 하나는 앱의 일부로 배포 된 것입니다. 그리고 그들은 같은 버전이 아닙니다. 서버 클래스 로더는 응용 프로그램 클래스 로더가 실행되기 전에 먼저 서버 버전을 찾습니다. 앱에서 요구하는 것보다 이전 버전 인 경우 문제가 발생합니다.
이것은 저에게 JAR의 두 버전이 CLASSPATH에 있음을 시사합니다. 아마도 하나는 서버 자체에 있고 다른 하나는 앱의 일부로 배포 된 것입니다. 그리고 그들은 같은 버전이 아닙니다. 서버 클래스 로더는 응용 프로그램 클래스 로더가 실행되기 전에 먼저 서버 버전을 찾습니다. 앱에서 요구하는 것보다 이전 버전 인 경우 문제가 발생합니다.
다른 배포 된 응용 프로그램을 손상시키지 않으면 서 서버 버전을 제거하지 못할 수도 있기 때문에이 솔루션은 어렵습니다. 애플리케이션이 JBOSS에게 애플리케이션 클래스 로더에 의해로드 된 JAR을 선호하도록 알려주는 플래그가 JBOSS 구성에 있는지 확인하고 이것이 도움이되는지 확인하십시오.
http://www.datadisk.co.uk/html_docs/java_app/jboss5/jboss5_deployment.htm http://community.jboss.org/wiki/ClassLoadingConfiguration http://community.jboss.org/wiki/JBossClassLoadingUseCases
from https://stackoverflow.com/questions/4542471/spring-class-loader-issues-in-jboss-while-using-spring-ws-client by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] Spring + Hibernate 애플리케이션에 2 개의 데이터 소스를 주입하면 트랜잭션이 발생하지 않습니다. 진행 중 오류가 발생했습니다. (0) | 2019.05.23 |
---|---|
[SPRING] Spring 애플리케이션을 Tomcat에 전개 할 수 없다 : applicationContext의 문제점은 무엇인가? (0) | 2019.05.23 |
[SPRING] jsp에서 일반적인 연결, 변수 및 경로 (0) | 2019.05.23 |
[SPRING] BindingResult도 일반 대상 객체도 아닙니다 ... 예외 (0) | 2019.05.23 |
[SPRING] 스프링 데이터 REST는 데이터를 REST API에 게시 할 수 없습니다. (0) | 2019.05.23 |