2012-06-27 4 views
0

스프링 웹 서비스 (jax-ws) 응용 프로그램을 배포하려고하면 Jboss 및 xerces jar 파일과 충돌이 있음을 알게되었습니다. 이것은 오류입니다.Jboss xml 파서가 xerces와 충돌합니다

09:58:50,852 ERROR [JBossContextConfig] XML error parsing: context.xml 
org.jboss.xb.binding.JBossXBRuntimeException: Failed to create a new SAX parser 

몇 가지 기술적 인 토론을 거쳐,이 JBoss 서버의 버그가 있음을 발견했다. 버그 보고서에 다음은 link입니다. lib 폴더에서 xercec.jar을 제거한다고합니다.

xerces jar을 제거하면 응용 프로그램이 xcerces jar로 applicationContext.xml의 특정 xml sysntaxes를 구문 분석해야한다고 생각하기 때문에 서버에 스프링 오류가 발생합니다. 이것은 봄 오류입니다.

09:14:38,175 ERROR [org.springframework.web.context.ContextLoader] Context 
initialization failed: org.springframework.beans.factory.BeanCreationException: 
Error creating bean with name 
'com.sun.xml.ws.transport.http.servlet.SpringBinding#0 defined in ServletContext 
resource [/WEB-INF/applicationContext.xml]: Cannot create inner bean '(inner bean)' 
of type [org.jvnet.jax_ws_commons.spring.SpringService] while setting bean property 
'service'; nested exception is org.springframework.beans.factory.BeanCreationException: 
Error creating bean with name '(inner bean)': FactoryBean threw exception on object 
creation; nested exception is java.lang.LinkageError: loader constraint violation: when  
resolving field "DATETIME" the class loader (instance of 
org/jboss/classloader/spi/base/BaseClassLoader) of the referring class, 
javax/xml/datatype/DatatypeConstants, and the class loader (instance of <bootloader>) 
for the field's resolved type, loader constraint violation: when resolving field 
"DATETIME" the class loader 

다음 xml sysntax가 포함되어 있습니다.

<wss:service> 
     <ws:service bean="#helloWs"/> 
</wss:service> 

나는 서버 (빈 = "#의 helloWs") 제이 보스 XML 파서가. 스프링 내부 bean을 만들 포함이 특정 XML을 sysntax을 식별 할 수 없었기 때문에 그 스프링 오류가 발생합니다 생각합니다. 따라서 기존 Jboss xml 파서를 xercess xml 파서로 대체하면 트릭을 수행 할 수 있다고 생각합니다. 내 질문은 그것을하는 방법입니다? 이 문제에 대한 대안 제안도 환영합니다.

미리 감사드립니다.

FYI : 동일한 응용 프로그램이 glassfish server 3.x에서 원활하게 작동합니다 (수정하지 않고). 그러나 Jboss 서버에 배포해야합니다.

답변

1

나는 또한이 문제에 직면했다. 제 경우에는 응용 프로그램에서 Xerces를 제거하는 것이 해결책 이었지만 필요합니다.

"응용 프로그램에서 xercers 제거"대안은 here입니다.

+0

안녕하세요, 저는 대안 솔루션을 시도하고 클래스 로딩 구성을 수행했습니다. 이제 봄에 내부 bean 예외가 생겼다. 나는 xfire 플러그인과 그것의 작동을 사용하여 동일한 어플리케이션을 구현했다. 이 오류의 원인이 무엇인지 알 수 없습니다. 제안에 감사드립니다. –

+0

마지막으로 나는 그 봄 오류에 대한 해결책을 찾았습니다. 나는 lib 디렉토리에서 일부 추가 항아리를 제거했습니다. (jaxen-1.1 베타 9 STAX-API-1.0.1 STAX-API-1.0-2 STAX-utils를-20040917 wsdl4j-1.6.1 xbean- 2.2.0 xercesImpl xmlParserAPIs-2.2.6.2 XmlSchema-1.1) 이제 작업 중 :) 팁 주셔서 감사합니다! –

관련 문제