JaxWS ClassCastException на JBoss
Я использую JBoss 5.1.0.GA (для JDK6) и jaxws 2.2.6. Когда я вызываю веб-сервис, я получаю следующее исключение:
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
Я также пытался обновить jbossws до версии 3.4.0 с 3.1.2.GA, ничего не изменилось. Я прочитал много предложений, связанных с проверкой jar-файлов в lib / одобренном JBoss, так что это содержание:
activation.jar
jaxb-api.jar
jaxws-api.jar
jbossws-native-factories.jar
resolver.jar
serializer.jar stax-api.jar
xalan.jar
xercesImpl.jar
Я также добавил ключ -verbose: class в 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 вызывается из строки ServiceLoader.java 345
S p = service.cast(Class.forName(cn, true, loader).newInstance());
когда вызывается service.cast,this
являетсяjavax.xml.ws.spi.Provider
и арг для чтенияorg.jboss.ws.core.jaxws.spi.ProviderImpl
.
I still fail to understand the problem though.