JBoss 5.1.0.GA (JDK6 用) と jaxws 2.2.6 を使用しています。Web サービスを呼び出すと、次の例外が発生します。
java.util.ServiceConfigurationError: javax.xml.ws.spi.Provider: プロバイダー org.jboss.ws.core.jaxws.spi.ProviderImpl をインスタンス化できませんでした: org.jboss.resource.work.WorkWrapper での java.lang.ClassCastException .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) で java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) で java.lang.Thread.run(Thread.java:680) で原因: java.util.ServiceConfigurationError: javax.xml.ws.spi.Provider: Provider org.jboss.ws.core.jaxws.spi.ProviderImpl をインスタンス化できませんでした: java.util.ServiceLoader での java.lang.ClassCastException。失敗 (ServiceLoader.java:207) で java.util.ServiceLoader.access$100 (ServiceLoader.java:164) で java.util.ServiceLoader$LazyIterator.next(ServiceLoader.java:353) で java.util.ServiceLoader$1.next (ServiceLoader.java:421) で javax.xml.ws.spi.Provider.getProviderUsingServiceLoader(Provider.java:180) で javax.xml.ws.spi.Provider.provider(Provider.java:140) で javax.xml で。 ws.Service.(Service.java:92)
[...]
... 3 つ以上の原因: java.lang.ClassCastException at java.lang.Class.cast(Class.java:2990) at java.util.ServiceLoader $LazyIterator.next(ServiceLoader.java:345)
... 14 以上
また、jbossws を 3.1.2.GA からバージョン 3.4.0 に更新しようとしましたが、何も変わりませんでした。JBoss の lib/endorsed で jar をチェックすることに関連する多くの提案を読んだので、これが内容です。
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
ます。私はまだ問題を理解していません。