AXIS2 数据的 SOA 套件正在丢弃

我们正在将WebLogic 10.3.5 Web应用程序迁移到WebLogic 12.1.3,并且我们遇到了一个我们认为可能与Web服务安全性相关的问题。该应用程序使用 Axis 1.5.6 调出 SOA Suite SOAP 服务(仍在 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 Rampart 1.5.2,Apache Neethi 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>

不记录任何异常。有没有人经历过并解决了这类问题?


答案 1

最后,我通过强制应用程序使用与应用程序捆绑在一起的JAR文件而不是WebLogic提供的JAR文件来解决此问题。使用类加载器分析工具和一些试验和错误,我指定了与应用程序捆绑在一起的所有 JAR,这些 JAR 在 SOAP 消息的构造中以如下方式结束.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>  

类装入器分析工具还帮助我们识别并消除了重复和冗余的 JAR 文件,我们从 EAR 文件中删除了这些文件。


答案 2

推荐