我正在使用带有jax-ws的简单java程序调用switchyard Web服务。 我们的生产服务器是带有switchyard 1.1的jboss eap 6.1,我正在使用wildfly 10.1.0和switchyard 2.1进行测试。 在两种环境中情况都是相同的,当我调用Web服务时,尽管服务器响应(通过跟踪)看起来很好,但返回始终为null。
请求/响应示例:
REQUEST:
<?xml version="1.0" ?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Body>
<ns3:identifyUser xmlns:ns3="urn:pt.ipc.pio:pio-organizationservices:1.0" xmlns:ns2="urn:pt.ipc.pio.model.organization:1.0">
<identifyUserInput>
<userName>****************</userName>
</identifyUserInput>
</ns3:identifyUser>
</S:Body>
</S:Envelope>
响应:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"/>
<soap:Body>
<identifyUserResponse xmlns="urn:pt.ipc.pio:pio-organizationservices:1.0">
<ns2:userIdentity xmlns:ns2="urn:pt.ipc.pio.model.organization:1.0">
<uniqueId>**********</uniqueId>
<personalData>
<nif>**********</nif>
<name>**********************</name>
<gender>*</gender>
<identification>********</identification>
</personalData>
<ous>
<ou>****</ou>
<numSGA>********</numSGA>
<numInt>*****</numInt>
<role>***************************************************************</role>
<type>*****</type>
<emailAlt>*******************</emailAlt>
<active>****</active>
<admissionDate>**********************</admissionDate>
</ous>
<preferedOU>
<ou>****</ou>
<numSGA>********</numSGA>
<numInt>*****</numInt>
<role>***************************************************************</role>
<type>*****</type>
<emailAlt>*******************</emailAlt>
<active>****</active>
<admissionDate>**********************</admissionDate>
</preferedOU>
</ns2:userIdentity>
</identifyUserResponse>
</soap:Body>
</soap:Envelope>
我用http服务器硬编码响应进行了一些测试,并注意到如果我从
更改xml <identifyUserResponse xmlns="urn:pt.ipc.pio:pio-organizationservices:1.0">
到
<ns:identifyUserResponse xmlns:ns="urn:pt.ipc.pio:pio-organizationservices:1.0">
(添加命名空间标识符)java客户端开始工作。
使用jax-ws ri,metro和cxf进行测试,结果始终相同。