我们正在将一个WebLogic 10.3.5Web应用程序迁移到WebLogic 12.1.3,我们遇到了一个我们认为可能与web服务安全性有关的问题。该应用程序使用Axis1.5.6调用Suite服务(仍然运行在WebLogic 10.3.5上)。当禁用web服务安全性时,我们将得到预期的响应:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ns3:getNamesResponse
xmlns:ns2="http://www.example.com/ABC/Common"
xmlns:ns3="http://www.example.com/ABC/Profile">
<ns3:OperatingName>
<ns3:Number>123456789</ns3:Number>
<ns3:Name>Company Name, Inc.</ns3:Name>
</ns3:OperatingName>
</ns3:getNamesResponse>但是,一旦启用了web服务安全性(使用Apache 1.5.2,Apache 2.0.5),我们就开始接收空响应:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ns2:getNamesResponse
xmlns:ns2="http://www.example.com/ABC/Profile"
xmlns:ns4="http://www.example.com/ABC/Common" />奇怪的是,当查看SOA套件控制台时,从SOA返回到web应用程序的响应(启用了安全性)看起来是正确的:
<message>
<properties>
<property name="tracking.compositeInstanceId" value="2110209"/>
<property name="tracking.ecid" value="0058XKIkdpHFw00Fzzw0w00004Et005Kmk"/>
<property name="ws.wsu.id" value="Body-Body_tTzuB5XmRNQPR7Y7"/>
</properties>
<parts>
<part name="getNamesResponse">
<bp:getNamesResponse>
<bp:OperatingName>
<bp:Number>123456789</bp:Number>
<bp:Name>Company Name, Inc.</bp:Name>
</bp:OperatingName>
</bp:getNamesResponse>
</part>
</parts>
</message>不记录任何异常。有没有其他人经历和解决过这类问题?
发布于 2016-03-01 14:38:28
最后,我通过强制应用程序使用与应用程序捆绑在一起的JAR文件而不是WebLogic提供的JAR文件来解决这个问题。使用类装入器分析工具和一些尝试和错误,我指定了与SOAP消息构造中使用的应用程序捆绑在一起的所有JAR,并在WebLogic-application.xml中以类似这样的方式结束:
<wls:prefer-application-packages>
<wls:package-name>com.ctc.wstx.*</wls:package-name>
<wls:package-name>javax.mail.*</wls:package-name>
<wls:package-name>javax.mail.event.*</wls:package-name>
<wls:package-name>javax.mail.internet.*</wls:package-name>
<wls:package-name>javax.mail.search.*</wls:package-name>
<wls:package-name>javax.mail.util.*</wls:package-name>
<wls:package-name>javax.wsdl.*</wls:package-name>
<wls:package-name>javax.wsdl.extensions.*</wls:package-name>
<wls:package-name>javax.wsdl.factory.*</wls:package-name>
<wls:package-name>javax.wsdl.xml.*</wls:package-name>
<wls:package-name>org.apache.oro.*</wls:package-name>
<wls:package-name>org.apache.xerces.*</wls:package-name>
<wls:package-name>org.apache.axiom.*</wls:package-name>
<wls:package-name>org.bouncycastle.*</wls:package-name>
<wls:package-name>org.bouncycastle.asn1.*</wls:package-name>
<wls:package-name>org.bouncycastle.crypto.*</wls:package-name>
<wls:package-name>org.bouncycastle.i18n.*</wls:package-name>
<wls:package-name>org.bouncycastle.jce.*</wls:package-name>
<wls:package-name>org.bouncycastle.math.*</wls:package-name>
<wls:package-name>org.bouncycastle.mozilla.*</wls:package-name>
<wls:package-name>org.bouncycastle.ocsp.*</wls:package-name>
<wls:package-name>org.bouncycastle.openssl.*</wls:package-name>
<wls:package-name>org.bouncycastle.util.*</wls:package-name>
<wls:package-name>org.bouncycastle.voms.*</wls:package-name>
<wls:package-name>org.bouncycastle.x509.*</wls:package-name>
<wls:package-name>org.codehaus.stax2.*</wls:package-name>
<wls:package-name>org.jaxen.*</wls:package-name>
<wls:package-name>org.jaxen.dom.*</wls:package-name>
<wls:package-name>org.jaxen.dom4j.*</wls:package-name>
<wls:package-name>org.jaxen.expr.*</wls:package-name>
<wls:package-name>org.jaxen.function.*</wls:package-name>
<wls:package-name>org.jaxen.javabean.*</wls:package-name>
<wls:package-name>org.jaxen.jdom.*</wls:package-name>
<wls:package-name>org.jaxen.pattern.*</wls:package-name>
<wls:package-name>org.jaxen.saxpath.*</wls:package-name>
<wls:package-name>org.jaxen.util.*</wls:package-name>
<wls:package-name>org.jaxen.xom.*</wls:package-name>
<wls:package-name>org.slf4j.*</wls:package-name>
<wls:package-name>org.slf4j.helpers.*</wls:package-name>
<wls:package-name>org.slf4j.impl.*</wls:package-name>
<wls:package-name>org.slf4j.spi.*</wls:package-name>
<wls:package-name>org.apache.axis2.*</wls:package-name>
<wls:package-name>org.opensaml.*</wls:package-name>
<wls:package-name>org.apache.neethi.*</wls:package-name>
</wls:prefer-application-packages> Classloader工具还帮助我们识别和消除重复和冗余的JAR文件,我们从EAR文件中删除了这些文件。
https://stackoverflow.com/questions/33221786
复制相似问题