Har*_*555 1 java weblogic cxf jax-ws weblogic9.x
我正在开发一个Web应用程序,它的servlet基本上充当Web服务的前端,我使用CXF作为Web服务客户端,应用程序在WebLogic 9.10服务器上运行,每个东西都工作正常,直到项目所有者决定添加ssl supprt,没什么大问题,因为我使用cxf whitout spring,我设法在服务客户端的http管道中配置TLS参数,还配置了一个密钥库,用于服务器密钥,ca根证书和客户端证书,在开发tomcat实例下测试并且工作正常.
当应用程序再次将应用程序重新部署到weblogic服务器并开始出现奇怪的错误时,问题就出现了,首先是:
java.lang.ClassCastException: com.sun.xml.ws.client.sei.SEIStub cannot be cast to org.apache.cxf.frontend.ClientProxy
at org.apache.cxf.frontend.ClientProxy.getClient
Run Code Online (Sandbox Code Playgroud)
然后我意识到weblogic正在加载它自己的JAX-WS实现,没有问题,只是添加了weblogic.xml whit"prefer-web-inf-classes"设置为true,重新部署,现在我得到了这个例外:
java.lang.LinkageError: loader constraint violation: when resolving method "javax.xml.ws.Service.<init>(Ljava/net/URL;Ljavax/xml/namespace/QName;)V" the class loader (instance of weblogic/utils/classloaders/ChangeAwareClassLoader) of the current class, com/adinfi/imgsvc/cm/service/CMBGenericWebServiceService, and the class loader (instance of <bootloader>) for resolved class, javax/xml/ws/Service, have different Class objects for the type javax/xml/namespace/QName used in the signature
Run Code Online (Sandbox Code Playgroud)
那个人得到了我,我认为类路径有问题,所以我开始从应用程序中删除jar并仍然有更多的链接错误,最后一个我得到的是:
java.lang.LinkageError: loader constraint violation: loader (instance of <bootloader>) previously initiated loading for a different type with name "org/w3c/dom/UserDataHandler"
Run Code Online (Sandbox Code Playgroud)
这就是我的应用程序的"Web-Inf/lib /"目录现在的样子:
classes12.jar
classes12.zip
common.jar
common.resources.jar
commons-beanutils-1.8.0.jar
commons-discovery.jar
commons-logging-1.1.1.jar
commons-logging-api.jar
commons-logging-api-1.1.1.jar
cxf-2.2.5.jar
log4j-1.2.8.jar
ras.jar
runtimefw.jar
wsdl4j-1.6.2.jar
wss4j-1.5.8.jar
xalan-2.7.1.jar
xml-resolver-1.2.jar
XmlSchema-1.4.5.jar
xmlsec-1.4.3.jar
Run Code Online (Sandbox Code Playgroud)
知道我做错了什么吗?提前致谢
回滚prefer-web-inf-classes内容并遵循CXF文档的Application Server特定配置指南中的WebLogic特定说明.更准确地说,weblogic-application.xml如第二个选项中所述,提供一个耳朵中的Pack war,使用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>javax.jws.*</package-name>
</prefer-application-packages>
</weblogic-application>
Run Code Online (Sandbox Code Playgroud)
如果需要,请按照此帖子的其他步骤操作.
| 归档时间: |
|
| 查看次数: |
6072 次 |
| 最近记录: |