JBoss 5.1.0.GA (JDK6 용) 및 jaxws 2.2.6을 사용하고 있습니다. 나는 웹 서비스를 호출 할 때 , 나는 다음과 같은 예외를 얻을 :JaxWS ClassCastException on JBoss
java.util.ServiceConfigurationError: javax.xml.ws.spi.Provider: Provider org.jboss.ws.core.jaxws.spi.ProviderImpl could not be instantiated: java.lang.ClassCastException at org.jboss.resource.work.WorkWrapper.completed(WorkWrapper.java:283)
at org.jboss.util.threadpool.BasicTaskWrapper.taskCompleted(BasicTaskWrapper.java:367) at org.jboss.util.threadpool.BasicTaskWrapper.run(BasicTaskWrapper.java:268) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:680)Caused by: java.util.ServiceConfigurationError: javax.xml.ws.spi.Provider: Provider org.jboss.ws.core.jaxws.spi.ProviderImpl could not be instantiated: java.lang.ClassCastException at java.util.ServiceLoader.fail(ServiceLoader.java:207) at java.util.ServiceLoader.access$100(ServiceLoader.java:164) at java.util.ServiceLoader$LazyIterator.next(ServiceLoader.java:353) at java.util.ServiceLoader$1.next(ServiceLoader.java:421) at javax.xml.ws.spi.Provider.getProviderUsingServiceLoader(Provider.java:180) at javax.xml.ws.spi.Provider.provider(Provider.java:140) at javax.xml.ws.Service.(Service.java:92)
[...]
... 3 more Caused by: java.lang.ClassCastException at java.lang.Class.cast(Class.java:2990) at java.util.ServiceLoader$LazyIterator.next(ServiceLoader.java:345)
... 14 more
나는 또한 3.1.2.GA에서 버전 3.4.0로 jbossws를 업데이트하려고 아무것도 변경되지 않습니다. 나는 보스의 승인 lib 디렉토리에있는 항아리를/확인에 관한 제안을 많이 읽었습니다, 그래서 이것은 내용입니다 :
activation.jar
jaxb-api.jar
jaxws-api.jar
jbossws-native-factories.jar
resolver.jar
serializer.jar stax-api.jar
xalan.jar
xercesImpl.jar
나는 또한 스위치 -verbose를 추가했습니다 : 클래스는 JVM에 :
[Loaded org.jboss.ws.core.jaxws.spi.ProviderImpl from jar:file:/Users/carlo/jboss-5.1.0.GA/common/lib/jbossws-native-core.jar!/]
그 클래스를 확장 javax.xml.ws.spi.Provider
(http://bit.ly/LK9bNE)
누군가가 나를 도울 수 있습니까?
EDIT 1
좋아, 그래서는 ClassCastException가에서 제기되는 것을 볼 수 : service.cast가 호출 될 때 this
이 javax.xml.ws.spi.Provider
하고 주조 할 수있는 인수는, ServiceLoader.java 라인 (345)
S p = service.cast(Class.forName(cn, true, loader).newInstance());
org.jboss.ws.core.jaxws.spi.ProviderImpl
. 그래도 문제를 이해하지 못합니다.
Eclipse를 사용하여 디버깅하고 예외에 중단 점을 넣을 수 있습니다. ClassCastException – davidfrancis
PS JAX-WS에 몇 가지 문제점이있었습니다. 그것은 (참조 impl yhow)가 JDK에 통합되었습니다. classpath와 JDK의 다른 버전을 가지고 있다면 이와 같은 일이 일어나는 경향이 있습니다. jbossws에 대해서는 들어 본 적이 없지만 JAX-WS 구현이 될 수있는 것처럼 들립니다. – davidfrancis
이전에 그런 종류의 문제가있었습니다. 실제로는 제외되었으므로 다음과 같은 문제점이 있습니다. javax.xml.stream, stax, saaj-impl, saaj- API와 mimepull. 그리고 내가 실수 한 것이 사라지게 만들었습니다. – Carlo