我创建了一个连接外部Web服务的客户端。这是通过使用wsimport生成工件然后在我现有的Web应用程序中复制java类来完成的。 我的工作站上有tomcat,这个项目在这个环境中完美地部署和运行。 但是,只要我将其部署到weblogic服务器,我就会收到以下错误。 能否帮助我理解这个问题及其潜在的解决方案。
java.util.ServiceConfigurationError: javax.xml.ws.spi.Provider: Provider weblogic.wsee.jaxws.spi.WLSProvider 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.<init>(Service.java:92)
提前致谢!
答案 0 :(得分:1)
在我的情况下导入jaxb - api做了伎俩
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>...</version>
</dependency>
答案 1 :(得分:0)
我更改了jaxws-api.jar库的版本并且它有效。我使用2.2.5并将其更改为2.1-1版本,它对我有用。
此外,在您的EAR的META-INF / weblogic-application.xml中,输入
<?xml version="1.0" encoding="UTF-8"?> <weblogic-application xmlns="http://www.bea.com/ns/weblogic/90">
<application-param>
<param-name>webapp.encoding.default</param-name>
<param-value>UTF-8</param-value>
</application-param>
<prefer-application-packages>
<package-name>org.springframework.*</package-name>
<package-name>javax.jws.*</package-name>
<package-name>javax.wsdl.*</package-name>
<package-name>com.ctc.wstx.*</package-name>
<package-name>javax.xml.ws.*</package-name>
<package-name>com.sun.xml.messaging.saaj.*</package-name>
</prefer-application-packages>