2017-06-06 8 views
0

添付ファイル付きのメッセージを受信するSOAPサービスを使用しようとしています。 「SOAP 1.1操作でエラーが発生MTOM最適化を使用して添付ファイルを送信する

OSB-382000: Couldn't create SOAP message due to exception: XML reader error: com.ctc.wstx.exc.WstxUnexpectedCharException: Unexpected character '-' (code 45) in prolog; expected '<' 
at [row,col {unknown-source}]: [1,1]</faultstring><detail><con:stack-trace xmlns:con="http://www.bea.com/wli/sb/context">com.bea.wli.sb.service.handlerchain.HandlerException: Couldn't create SOAP message due to exception: XML reader error: com.ctc.wstx.exc.WstxUnexpectedCharException: Unexpected character '-' (code 45) in prolog; expected '&lt;' 
at [row,col {unknown-source}]: [1,1] 
    at com.bea.wli.sb.service.disi.handlerchain.handlers.InboundDISIHandler.dispatch(InboundDISIHandler.java:148) 
    at com.bea.wli.sb.service.handlerchain.handlers.AbstractHandler.dispatch(AbstractHandler.java:131) 
    at com.bea.wli.sb.service.disi.handlerchain.handlers.InboundWssPhase1DISIHandler.dispatch(InboundWssPhase1DISIHandler.java:100) 
    at com.bea.wli.sb.service.handlerchain.handlers.AbstractHandler.dispatch(AbstractHandler.java:131) 
    at com.bea.wli.sb.service.handlerchain.handlers.InboundMessageContentHandler.dispatch(InboundMessageContentHandler.java:169) 
    at com.bea.wli.sb.service.handlerchain.handlers.AbstractHandler.dispatch(AbstractHandler.java:131) 
    at com.bea.wli.sb.service.handlerchain.handlers.CheckAccessControl.dispatch(CheckAccessControl.java:65) 
    at com.bea.wli.sb.service.handlerchain.handlers.AbstractHandler.dispatch(AbstractHandler.java:131) 
    at com.bea.wli.sb.service.handlerchain.handlers.UpdateInboundTransportStatistics.dispatch(UpdateInboundTransportStatistics.java:64) 
    at com.bea.wli.sb.service.handlerchain.handlers.AbstractHandler.dispatch(AbstractHandler.java:131) 
    at com.bea.wli.sb.service.handlerchain.handlers.InboundMessageTracing.dispatch(InboundMessageTracing.java:80) 
    at com.bea.wli.sb.service.handlerchain.handlers.AbstractHandler.dispatch(AbstractHandler.java:131) 
    at com.bea.wli.sb.service.handlerchain.handlers.DefaultInboundErrorHandler.dispatch(DefaultInboundErrorHandler.java:44) 
    at com.bea.wli.sb.service.handlerchain.InboundHandlerChain.dispatch(InboundHandlerChain.java:134) 
    at com.bea.wli.sb.transports.TransportDispatcherClient.dispatch(TransportDispatcherClient.java:91) 
    at com.bea.wli.sb.transports.TransportManagerImpl.receiveMessage(TransportManagerImpl.java:352) 
    at com.bea.wli.sb.transports.http.generic.RequestHelperBase.invokePipeline(RequestHelperBase.java:200) 
    at com.bea.wli.sb.transports.http.wls.HttpTransportServlet$RequestHelperWLS.invokePipeline(HttpTransportServlet.java:228) 
    at com.bea.wli.sb.transports.http.generic.RequestHelperBase$1.run(RequestHelperBase.java:175) 
    at com.bea.wli.sb.transports.http.generic.RequestHelperBase$1.run(RequestHelperBase.java:173) 
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363) 
    at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:146) 
    at com.bea.wli.sb.util.security.SecurityUtils.executeAs(SecurityUtils.java:102) 
    at com.bea.wli.sb.transports.http.generic.RequestHelperBase.securedInvoke(RequestHelperBase.java:172) 
    at com.bea.wli.sb.transports.http.generic.RequestHelperBase.service(RequestHelperBase.java:124) 
    at com.bea.wli.sb.transports.http.wls.HttpTransportServlet.service(HttpTransportServlet.java:129) 
    at weblogic.servlet.FutureResponseServlet.service(FutureResponseServlet.java:24) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:844) 
    at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:280) 
    at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:254) 
    at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:136) 
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:346) 
    at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:25) 
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:79) 
    at oracle.dms.servlet.DMSServletFilter.doFilter(DMSServletFilter.java:220) 
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:79) 
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3436) 
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3402) 
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321) 
    at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120) 
    at weblogic.servlet.provider.WlsSubjectHandle.run(WlsSubjectHandle.java:57) 
    at weblogic.servlet.internal.WebAppServletContext.doSecuredExecute(WebAppServletContext.java:2285) 
    at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2201) 
    at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2179) 
    at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1572) 
    at weblogic.servlet.provider.ContainerSupportProviderImpl$WlsRequestExecutor.run(ContainerSupportProviderImpl.java:255) 
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:311) 
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:263) 

が、私はエラーがHTTPヘッダによるものであると思われるが、私は次のことができます。SOAPUIで、私は、私は、サーバーからのフォロー応答エラーを受け取る呼び出し成功したサービスが、使用してWSO2インテグレータを作りましたこれらのヘッダーをSoapUIのように見えるように変更するための参照は他にありません。いくつかのヘッダーは等しく、他のヘッダーはそうではありません。私はSoapUIと同じようにいくつかのヘッダーを設定しようとしましたが、成功しませんでした。続き

は、私は(ここで収まるようにすべてのログを削除)を使用していたリソースです。ペイロードは、機密性の高いデータにより再開したが、SOAPUIから提出され、同じエンベロープは、サーバーからエラーなしで受信されているのでWSO2 Integratorによって生成されるSOAPエンベロープは、OKであると想定されます。

エンドポイント:

<endpoint xmlns="http://ws.apache.org/ns/synapse" name="envio_informacao_res_dados_clinicos"> 
    <address uri="http://xpto.com.br/service?WSDL" format="soap11" optimize="mtom"> 
     <enableSec policy="wssSecurityRES"/> 
    </address> 
</endpoint> 

配列(ペイロードへの結合を設定する):

<sequence xmlns="http://ws.apache.org/ns/synapse" name="attachment"> 
    <property name="attachmentContent" expression="get-property('ATTACHMENT_CONTENT')"/> 
    <property name="attachmentContentID" expression="get-property('ATTACHMENT_CONTENT_ID')"/> 
    <class name="br.com.modoagil.MTOMAttachmentFilesMediator"/> 
</sequence> 
(テスト用のみ)

プロキシサービス:

<?xml version="1.0" encoding="UTF-8"?> 
<proxy xmlns="http://ws.apache.org/ns/synapse" name="AttachmentFileProxyService" transports="https,http" statistics="disable" trace="disable" startOnLoad="true"> 
    <target> 
    <inSequence> 
     <property name="ATTACHMENT_CONTENT" expression="$body/*" /> 
     <property name="ATTACHMENT_CONTENT_ID" value="AnexoLaboratorio.xml" /> 
     <payloadFactory media-type="xml"> 
     <format> 
      <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:v1="http://xpto.com.br/schemas/servico/envio/informacao/res/v1.00" xmlns:v17="http://xpto.com.br/schemas/comum/tipos/complexos/anexos/v1.00" xmlns:xm="http://www.w3.org/2005/05/xmlmime"> 
      <soapenv:Header /> 
      <soapenv:Body> 
       <v1:requisicaoEnvioInformacaoRES> 
       <v1:cabecalhoRequisicao> 
        <!-- omitted --> 
       </v1:cabecalhoRequisicao> 
       <v1:corpoRequisicao> 
        <v1:beneficiario> 
        <!-- omitted --> 
        </v1:beneficiario> 
        <v1:profissional> 
        <!-- omitted --> 
        </v1:profissional> 
        <v1:informacaoClinica> 
        <v17:anexoComposicao xm:contentType="application/xml" xm:expectedContentTypes="application/xml" /> 
        <!-- omitted --> 
        </v1:informacaoClinica> 
       </v1:corpoRequisicao> 
       </v1:requisicaoEnvioInformacaoRES> 
      </soapenv:Body> 
      </soapenv:Envelope> 
     </format> 
     <args /> 
     </payloadFactory> 
     <sequence key="attachment" /> 
     <header name="Action" action="remove" /> 
     <property name="SOAPAction" action="remove" /> 
     <property name="FORCE_HTTP_1.0" value="true" scope="axis2" /> 
     <property name="SOAPAction" value="envio_informacao_res" scope="transport" /> 
     <property name="Proxy-Authorization" scope="transport" expression="fn:concat('Basic ', base64Encode('ZZZZ:YYYY'))" /> 
     <send> 
     <endpoint key="envio_informacao_res_dados_clinicos" /> 
     </send> 
    </inSequence> 
    <outSequence> 
     <property name="enableMTOM" value="true" scope="axis2" /> 
     <send /> 
    </outSequence> 
    </target> 
</proxy> 

カスタムメディエータ:

import java.io.IOException; 
import java.nio.charset.Charset; 
import java.nio.file.Files; 
import java.nio.file.Path; 

import javax.activation.DataHandler; 
import javax.activation.FileDataSource; 
import javax.xml.namespace.QName; 

import org.apache.axiom.om.OMElement; 
import org.apache.axiom.om.OMFactory; 
import org.apache.axiom.om.OMText; 
import org.apache.axiom.soap.SOAPBody; 
import org.apache.synapse.MessageContext; 
import org.apache.synapse.SynapseException; 
import org.apache.synapse.mediators.AbstractMediator; 

public class MTOMAttachmentFilesMediator extends AbstractMediator { 

    @Override 
    public boolean mediate(final MessageContext context) { 
     this.addAttachmentToRequest(context); 
     return true; 
    } 

    private void addAttachmentToRequest(final MessageContext context) { 
     final String attachmentContent = (String) context.getProperty("attachmentContent"); 
     final String attachmentContentID = (String) context.getProperty("attachmentContentID"); 

     Path tempContentFile = null; 
     try { 
      tempContentFile = Files.createTempFile(attachmentContentID + "-" + System.currentTimeMillis(), ".bin"); 
      Files.write(tempContentFile, attachmentContent.getBytes(Charset.defaultCharset())); 
     } catch (final IOException e) { 
      super.handleException("Error while creating attachment file: " + e.getMessage(), e, context); 
     } 

     if (tempContentFile == null) { 
      throw new SynapseException("Temporary attachment file must not be null here"); 
     } 

     final SOAPBody body = context.getEnvelope().getBody(); 
     final OMElement requisicaoEnvioInformacaoRES = body.getFirstElement(); 
     final OMElement corpoRequisicao = (OMElement) requisicaoEnvioInformacaoRES.getChildrenWithName(new QName("corpoRequisicao")).next(); 
     final OMElement informacaoClinica = (OMElement) corpoRequisicao.getChildrenWithName(new QName("informacaoClinica")).next(); 

     final OMFactory factory = informacaoClinica.getOMFactory(); 

     final OMElement anexoComposicao = (OMElement) informacaoClinica.getChildrenWithName(new QName("anexoComposicao")).next(); 
     final FileDataSource fileDataSource = new FileDataSource(tempContentFile.toFile()); 
     final DataHandler dataHandler = new DataHandler(fileDataSource); 
     final OMText bynaryNode = factory.createOMText(dataHandler, true); 
     bynaryNode.setContentID(attachmentContentID); 
     anexoComposicao.addChild(bynaryNode); 
    } 

} 

SOAPUI "完全なリクエスト/レスポンス":

POST /service?WSDL HTTP/1.1 
Accept-Encoding: gzip,deflate 
Content-Type: multipart/related; type="application/xop+xml"; start="<[email protected]>"; start-info="text/xml"; boundary="----=_Part_10_1408830521.1496694507193" 
SOAPAction: "envio_informacao_res" 
Authorization: Basic omitted 
MIME-Version: 1.0 
Content-Length: 33427 
Host: xpto.com.br.br:7300 
Connection: Keep-Alive 
User-Agent: Apache-HttpClient/4.1.1 (java 1.5) 

------=_Part_10_1408830521.1496694507193 

Content-Type: application/xop+xml; charset=UTF-8; type="text/xml" 
Content-Transfer-Encoding: 8bit 
Content-ID: <[email protected]> 

<?xml version="1.0" encoding="UTF-8"?> 
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:v1="http://xpto.com.br/schemas/servico/envio/informacao/res/v1.00" xmlns:v17="http://xpto.com.br/schemas/comum/tipos/complexos/anexos/v1.00" xmlns:xm="http://www.w3.org/2005/05/xmlmime"> 
    <soapenv:Header> 
     <wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"> 
      <wsse:UsernameToken wsu:Id="UsernameToken-CAD2037163FCADC4A5149669450719220"> 
       <wsse:Username>omitted</wsse:Username> 
       <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordDigest">omitted</wsse:Password> 
       <wsse:Nonce EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary">omitted==</wsse:Nonce> 
       <wsu:Created>2017-06-05T20:28:27.192Z</wsu:Created> 
      </wsse:UsernameToken> 
     </wsse:Security> 
    </soapenv:Header> 
    <soapenv:Body> 
     <v1:requisicaoEnvioInformacaoRES> 
      <v1:cabecalhoRequisicao> 
       <!-- omitted --> 
      </v1:cabecalhoRequisicao> 
      <v1:corpoRequisicao> 
       <v1:beneficiario> 
        <!-- omitted --> 
       </v1:beneficiario> 
       <v1:profissional> 
        <!-- omitted --> 
       </v1:profissional> 
       <v1:informacaoClinica> 
        <v17:anexoComposicao xm:contentType="application/xml" xm:expectedContentTypes="application/xml"> 
         <inc:Include xmlns:inc="http://www.w3.org/2004/08/xop/include" href="cid:AnexoLaboratorio.xml" /> 
        </v17:anexoComposicao> 
        <!-- omitted --> 
       </v1:informacaoClinica> 
      </v1:corpoRequisicao> 
     </v1:requisicaoEnvioInformacaoRES> 
    </soapenv:Body> 
</soapenv:Envelope> 

------=_Part_10_1408830521.1496694507193 

Content-Type: text/xml; charset=us-ascii; name=AnexoLaboratorio.xml 
Content-Transfer-Encoding: 7bit 
Content-ID: <AnexoLaboratorio.xml> 
Content-Disposition: attachment; name="AnexoLaboratorio.xml"; filename="AnexoLaboratorio.xml" 

<?xml version="1.0" encoding="UTF-8"?> 
<Clinical_Summary_Events xmlns:oe="http://schemas.openehr.org/v1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.oceanehr.com/templates" archetype_node_id="openEHR-EHR-COMPOSITION.encounter.v1" template_id="clinical-summary-events" type="COMPOSITION" xsi:schemaLocation="http://schemas.oceanehr.com/templates templates/clinical-summary-events.xsd"> 
    <!-- omitted --> 
</Clinical_Summary_Events> 

------=_Part_10_1408830521.1496694507193-- 

##### RESPONSE ##### 

HTTP/1.1 200 OK 
Server: Oracle-Traffic-Director/11.1.1.9 
Date: Mon, 05 Jun 2017 20:28:30 GMT 
Content-length: 3463 
Content-type: text/xml; charset=UTF-8 
X-oracle-dms-ecid: XeMsH1O_000000000 
Via: 1.1 net-QA 
Proxy-agent: Oracle-Traffic-Director/11.1.1.9 

<soapenv:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Header/><soap-env:Body xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/"><ptucsseir:respostaEnvioInformacaoRES xmlns:ptucsseir="http://xpto.com.br/schemas/servico/envio/informacao/res/v1.00"> <!-- omitted --></ptucsseir:respostaEnvioInformacaoRES></soap-env:Body></soapenv:Envelope>" 

WSO2 EI "完全なリクエスト/レスポンス":

POST /service?WSDL HTTP/1.0 
SOAPAction: envio_informacao_res 
Accept-Encoding: gzip,deflate 
Proxy-Authorization: Basic omitted 
Content-Type: text/xml; charset=UTF-8 
Content-Length: 41934 
Host: xpto.com.br:7300 
Connection: Keep-Alive 
User-Agent: Synapse-PT-HttpComponents-NIO 

--MIMEBoundary_20282c2967f861ead2423a50af020431e31644c6c1d1eeb6 

Content-Type: application/xop+xml; charset=UTF-8; type="text/xml" 
Content-Transfer-Encoding: binary 
Content-ID: <[email protected]> 

<?xml version="1.0" encoding="UTF-8"?> 
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:v1="http://xpto.com.br/schemas/servico/envio/informacao/res/v1.00" xmlns:v17="http://xpto.com.br/schemas/comum/tipos/complexos/anexos/v1.00" xmlns:xm="http://www.w3.org/2005/05/xmlmime"> 
    <soapenv:Header> 
     <wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" soapenv:mustUnderstand="1"> 
      <wsse:UsernameToken xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" wsu:Id="UsernameToken-1"> 
       <wsse:Username>omitted</wsse:Username> 
       <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordDigest">omitted</wsse:Password> 
       <wsse:Nonce EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary">omitted</wsse:Nonce> 
       <wsu:Created>2017-06-06T15:01:38.098Z</wsu:Created> 
      </wsse:UsernameToken> 
     </wsse:Security> 
    </soapenv:Header> 
    <soapenv:Body> 
     <v1:requisicaoEnvioInformacaoRES> 
      <v1:cabecalhoRequisicao> 
       <!-- omitted --> 
      </v1:cabecalhoRequisicao> 
      <v1:corpoRequisicao> 
       <v1:beneficiario> 
        <!-- omitted --> 
       </v1:beneficiario> 
       <v1:profissional> 
        <!-- omitted --> 
       </v1:profissional> 
       <v1:informacaoClinica> 
        <v17:anexoComposicao xm:contentType="application/xml" xm:expectedContentTypes="application/xml"> 
         <xop:Include xmlns:xop="http://www.w3.org/2004/08/xop/include" href="cid:AnexoLaboratorio.xml" /> 
        </v17:anexoComposicao> 
        <!-- omitted --> 
       </v1:informacaoClinica> 
      </v1:corpoRequisicao> 
     </v1:requisicaoEnvioInformacaoRES> 
    </soapenv:Body> 
</soapenv:Envelope> 

--MIMEBoundary_20282c2967f861ead2423a50af020431e31644c6c1d1eeb6 

Content-Type: application/octet-stream 
Content-Transfer-Encoding: binary 
Content-ID: <AnexoLaboratorio.xml> 

<Clinical_Summary_Events xmlns="http://schemas.oceanehr.com/templates" xmlns:oe="http://schemas.openehr.org/v1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" archetype_node_id="openEHR-EHR-COMPOSITION.encounter.v1" template_id="clinical-summary-events" type="COMPOSITION" xsi:schemaLocation="http://schemas.oceanehr.com/templates templates/clinical-summary-events.xsd"> 
    <!-- omitted --> 
</Clinical_Summary_Events> 

--MIMEBoundary_20282c2967f861ead2423a50af020431e31644c6c1d1eeb6-- 

##### RESPONSE ##### 

--MIMEBoundary_00282c2967f861ea3c123a50af020431f31644c6c1d1eeb6 
Content-Type: application/xop+xml; charset=UTF-8; type="text/xml" 
Content-Transfer-Encoding: binary 
Content-ID: <[email protected]> 

<?xml version='1.0' encoding='UTF-8'?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Body><soapenv:Fault><faultcode>soapenv:Server</faultcode><faultstring>OSB-382000: Couldn't create SOAP message due to exception: XML reader error: com.ctc.wstx.exc.WstxUnexpectedCharException: Unexpected character '-' (code 45) in prolog; expected '&lt;' 
at [row,col {unknown-source}]: [1,1]</faultstring><detail><con:stack-trace xmlns:con="http://www.bea.com/wli/sb/context">com.bea.wli.sb.service.handlerchain.HandlerException: Couldn't create SOAP message due to exception: XML reader error: com.ctc.wstx.exc.WstxUnexpectedCharException: Unexpected character '-' (code 45) in prolog; expected '&lt;' 
at [row,col {unknown-source}]: [1,1] 
    at com.bea.wli.sb.service.disi.handlerchain.handlers.InboundDISIHandler.dispatch(InboundDISIHandler.java:148) 
    at com.bea.wli.sb.service.handlerchain.handlers.AbstractHandler.dispatch(AbstractHandler.java:131) 
    at com.bea.wli.sb.service.disi.handlerchain.handlers.InboundWssPhase1DISIHandler.dispatch(InboundWssPhase1DISIHandler.java:100) 
    at com.bea.wli.sb.service.handlerchain.handlers.AbstractHandler.dispatch(AbstractHandler.java:131) 
    at com.bea.wli.sb.service.handlerchain.handlers.InboundMessageContentHandler.dispatch(InboundMessageContentHandler.java:169) 
    at com.bea.wli.sb.service.handlerchain.handlers.AbstractHandler.dispatch(AbstractHandler.java:131) 
    at com.bea.wli.sb.service.handlerchain.handlers.CheckAccessControl.dispatch(CheckAccessControl.java:65) 
    at com.bea.wli.sb.service.handlerchain.handlers.AbstractHandler.dispatch(AbstractHandler.java:131) 
    at com.bea.wli.sb.service.handlerchain.handlers.UpdateInboundTransportStatistics.dispatch(UpdateInboundTransportStatistics.java:64) 
    at com.bea.wli.sb.service.handlerchain.handlers.AbstractHandler.dispatch(AbstractHandler.java:131) 
    at com.bea.wli.sb.service.handlerchain.handlers.InboundMessageTracing.dispatch(InboundMessageTracing.java:80) 
    at com.bea.wli.sb.service.handlerchain.handlers.AbstractHandler.dispatch(AbstractHandler.java:131) 
    at com.bea.wli.sb.service.handlerchain.handlers.DefaultInboundErrorHandler.dispatch(DefaultInboundErrorHandler.java:44) 
    at com.bea.wli.sb.service.handlerchain.InboundHandlerChain.dispatch(InboundHandlerChain.java:134) 
    at com.bea.wli.sb.transports.TransportDispatcherClient.dispatch(TransportDispatcherClient.java:91) 
    at com.bea.wli.sb.transports.TransportManagerImpl.receiveMessage(TransportManagerImpl.java:352) 
    at com.bea.wli.sb.transports.http.generic.RequestHelperBase.invokePipeline(RequestHelperBase.java:200) 
    at com.bea.wli.sb.transports.http.wls.HttpTransportServlet$RequestHelperWLS.invokePipeline(HttpTransportServlet.java:228) 
    at com.bea.wli.sb.transports.http.generic.RequestHelperBase$1.run(RequestHelperBase.java:175) 
    at com.bea.wli.sb.transports.http.generic.RequestHelperBase$1.run(RequestHelperBase.java:173) 
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363) 
    at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:146) 
    at com.bea.wli.sb.util.security.SecurityUtils.executeAs(SecurityUtils.java:102) 
    at com.bea.wli.sb.transports.http.generic.RequestHelperBase.securedInvoke(RequestHelperBase.java:172) 
    at com.bea.wli.sb.transports.http.generic.RequestHelperBase.service(RequestHelperBase.java:124) 
    at com.bea.wli.sb.transports.http.wls.HttpTransportServlet.service(HttpTransportServlet.java:129) 
    at weblogic.servlet.FutureResponseServlet.service(FutureResponseServlet.java:24) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:844) 
    at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:280) 
    at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:254) 
    at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:136) 
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:346) 
    at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:25) 
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:79) 
    at oracle.dms.servlet.DMSServletFilter.doFilter(DMSServletFilter.java:220) 
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:79) 
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3436) 
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3402) 
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321) 
    at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120) 
    at weblogic.servlet.provider.WlsSubjectHandle.run(WlsSubjectHandle.java:57) 
    at weblogic.servlet.internal.WebAppServletContext.doSecuredExecute(WebAppServletContext.java:2285) 
    at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2201) 
    at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2179) 
    at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1572) 
    at weblogic.servlet.provider.ContainerSupportProviderImpl$WlsRequestExecutor.run(ContainerSupportProviderImpl.java:255) 
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:311) 
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:263) 
Caused by: com.sun.xml.ws.protocol.soap.MessageCreationException: Couldn't create SOAP message due to exception: XML reader error: com.ctc.wstx.exc.WstxUnexpectedCharException: Unexpected character '-' (code 45) in prolog; expected '&lt;' 
at [row,col {unknown-source}]: [1,1] 
    at com.sun.xml.ws.encoding.SOAPBindingCodec.decode(SOAPBindingCodec.java:319) 
    at com.sun.xml.ws.api.message.MessageContextFactory.createContext(MessageContextFactory.java:130) 
    at com.oracle.webservices.impl.disi.context.DISIMessageContextFactory.createContext(DISIMessageContextFactory.java:114) 
    at com.oracle.webservices.impl.disi.service.DISIAdapter$2.createContext(DISIAdapter.java:227) 
    at com.bea.wli.sb.service.disi.handlerchain.handlers.InboundDISIHandler.dispatch(InboundDISIHandler.java:88) 
    ... 47 more 
Caused by: com.sun.xml.ws.streaming.XMLStreamReaderException: XML reader error: com.ctc.wstx.exc.WstxUnexpectedCharException: Unexpected character '-' (code 45) in prolog; expected '&lt;' 
at [row,col {unknown-source}]: [1,1] 
    at com.sun.xml.ws.streaming.XMLStreamReaderUtil.wrapException(XMLStreamReaderUtil.java:326) 
    at com.sun.xml.ws.streaming.XMLStreamReaderUtil.next(XMLStreamReaderUtil.java:99) 
    at com.sun.xml.ws.streaming.XMLStreamReaderUtil.nextContent(XMLStreamReaderUtil.java:169) 
    at com.sun.xml.ws.streaming.XMLStreamReaderUtil.nextElementContent(XMLStreamReaderUtil.java:104) 
    at com.sun.xml.ws.encoding.StreamSOAPCodec.decode(StreamSOAPCodec.java:215) 
    at com.oracle.webservices.impl.encoding.StreamDecoderImpl.decode(StreamDecoderImpl.java:64) 
    at com.sun.xml.ws.encoding.StreamSOAPCodec.decode(StreamSOAPCodec.java:249) 
    at com.sun.xml.ws.encoding.StreamSOAPCodec.decode(StreamSOAPCodec.java:166) 
    at com.sun.xml.ws.encoding.SOAPBindingCodec.decode(SOAPBindingCodec.java:314) 
    ... 51 more 
Caused by: com.ctc.wstx.exc.WstxUnexpectedCharException: Unexpected character '-' (code 45) in prolog; expected '&lt;' 
at [row,col {unknown-source}]: [1,1] 
    at com.ctc.wstx.sr.StreamScanner.throwUnexpectedChar(StreamScanner.java:639) 
    at com.ctc.wstx.sr.BasicStreamReader.nextFromProlog(BasicStreamReader.java:2052) 
    at com.ctc.wstx.sr.BasicStreamReader.next(BasicStreamReader.java:1134) 
    at com.sun.xml.ws.util.xml.XMLStreamReaderFilter.next(XMLStreamReaderFilter.java:96) 
    at com.sun.xml.ws.streaming.XMLStreamReaderUtil.next(XMLStreamReaderUtil.java:80) 
    ... 58 more 
</con:stack-trace></detail></soapenv:Fault></soapenv:Body></soapenv:Envelope> 
--MIMEBoundary_00282c2967f861ea3c123a50af020431f31644c6c1d1eeb6-- 

だから、誰もがWSO2 EI/WSO2 ESBとSOAP/MTOMの要求を行うには、同様の問題がありますか?

EDIT

WSO2の統合バージョン:WSO2 EIは、デフォルトの設定で実行されている6.1.1

、何も設定がaxis2.xml設定ファイルでMTOMを有効にするために、いなくても特性が変化しませんでした。

答えて

0

解決策が見つかりました。私はプロキシにこのプロパティを追加します。ヘッダーは前と同じであり、SOAPUIは明らかに、よりクリーンな要求を生成するので

<property name="messageType" value="multipart/related" scope="axis2"/> 

は多分これは、最善の解決策ではありませんが、今のサービスが正しくによってsendedではメッセージを受け取りますWSO2 EI。

私は理由を知らないが、分離した「セクション」で添付ファイルを送信する代わりに、インクルードXOPを含むようにしています(以前のように、ログのように)、WSO2 EIはSOAP Envelope-エンコードされたベース64がエンコードされる

今のところ、この解決策が問題を引き起こす場合は、他の質問を作成しても問題ありません。

+1

SOAP UI書き込みには、http要求応答の完全なダンプを見つけることができるコンソールがあります。 https://github.com/gchaincl/httplabと同じことができます。それを実行し、ESBサービスのエンドポイント・アドレスを変更して、http要求応答のすべてのダンプを表示します。次に両面を比較して違いがあるかどうかを確認します。これはいつもうまくいきます。私はこのような問題を解決する最も簡単な方法だと思います。 – simar

関連する問題