Response Message Namespace Resolution

I'm working on an application that creates xml messages from wsdls and then sends them out and picks up the response (like a basic web service). I've encountered a problem with the resoultion of namespaces on the parts of the response message of an operation and I can't decide which is the correct namespace to apply to the xml element that is created by the output message. Below is an example and explanation of the problem.
The WSDL came form XMethods and is called send email. I've included at the end.
Using this WSDL in Xmethods, an exmaple input message that is created is
<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope xmlns:mrns0="http://www.abysal.com/Abysal-webDTP" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soap:Body soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<mrns0:SendEmail>
<From xsi:type="xs:string"/>
<FromAddress xsi:type="xs:string">[email protected]</FromAddress>
<To xsi:type="xs:string"/>
<ToAddress xsi:type="xs:string">[email protected]</ToAddress>
<Subject xsi:type="xs:string"/>
<MsgBody xsi:type="xs:string"/>
<Acknowledgement xsi:type="xs:string"/>
<Priority xsi:type="xs:string"/>
</mrns0:SendEmail>
</soap:Body>
</soap:Envelope>
The thing to note is that none of the parts have a namespace declaration (ie the FromAddress etc) and the root level does (ie the mrns0:sendEmail).
Now the response message comes back as
<?xml version='1.0' encoding='ISO-8859-1' ?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV='http://schemas.xmlsoap.org/soap/envelope/' SOAP-ENV:encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'>
<SOAP-ENV:Body>
<SendEmailResponse xmlns="http://www.abysal.com/Abysal-webDTP">
<ReturnCode>0</ReturnCode>
</SendEmailResponse></SOAP-ENV:Body>
</SOAP-ENV:Envelope>
With this response message the Part message "ReturnCode" has the same namespace as the Operation message "SendEmailResponse". This is a different approach to the request message.
What I can't work out from the wsdl definition is what determines the namespace that is applied to the parts of the request and response and why the namespace for those parts differs between the request and the reply message. If both the request and reply messages adhered to the target namespace then that would be fine but it seems like the request doesn't and hte response does. Maybe theres is some standard practice that I am unaware of.
Thanks for reading this far.
Here is the wsdl.
<?xml version="1.0" encoding="UTF-8"?>
<definitions name="AbysalSendEmail" targetNamespace="http://www.abysal.com/soap/AbysalEmail.wsdl" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://www.abysal.com/soap/AbysalEmail.wsdl" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<documentation>Abysal Systems Web Service to send email with WebDTP server</documentation>
<message name="SendEmailResponse">
<documentation>Output parameters</documentation>
<part name="ReturnCode" type="xsd:integer">
<documentation>Return code (0=ok any other=error)</documentation>
</part>
</message>
<message name="SendEmailInput">
<documentation>Input parameters</documentation>
<part name="From" type="xsd:string">
<documentation>Sender's name ( p.ej. 'Joe')</documentation>
</part>
<part name="FromAddress" type="xsd:string">
<documentation>Sender's address (p.ej. '[email protected]')</documentation>
</part>
<part name="To" type="xsd:string">
<documentation>Receiver's name (p.ej. 'Peter')</documentation>
</part>
<part name="ToAddress" type="xsd:string">
<documentation>Receiver's address (ie. '[email protected]')</documentation>
</part>
<part name="Subject" type="xsd:string">
<documentation>Description of the message</documentation>
</part>
<part name="MsgBody" type="xsd:string">
<documentation>Content of the message</documentation>
</part>
<part name="Acknowledgement" type="xsd:string">
<documentation>Notify sender when message is received ('0'=no '1'=yes)</documentation>
</part>
<part name="Priority" type="xsd:string">
<documentation>Grade of priority of message ('1'=high '3'=normal '5'=low)</documentation>
</part>
</message>
<portType name="SendEmailPortType">
<operation name="SendEmail" parameterOrder="From FromAddress To ToAddress Subject MsgBody Acknowledgement Priority">
<input message="tns:SendEmailInput"/>
<output message="tns:SendEmailResponse"/>
</operation>
</portType>
<binding name="SendEmailBinding" type="tns:SendEmailPortType">
<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="SendEmail">
<soap:operation soapAction="http://www.abysal.com/soap/"/>
<input>
<soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://www.abysal.com/Abysal-webDTP" use="encoded"/>
</input>
<output>
<soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://www.abysal.com/Abysal-webDTP" use="encoded"/>
</output>
</operation>
</binding>
<service name="SendEmailService">
<documentation>Abysal Systems Web Service to send email with WebDTP server</documentation>
<port binding="tns:SendEmailBinding" name="SendEmailPort">
<soap:address location="http://www.abysal.com/soap/soapmail.wdtp"/>
</port>
</service>
</definitions>

Hello,
I experienced the same problem after I updated to SAAJ 1.2
after days of debugging I found that it is caused by Xalan and not by
the SAAJ. here is a reference to the bug description http://developer.java.sun.com/developer/bugParade/bugs/4966232.html
now I upgraded to Xalan 2.6.0 and the problem is gone.
only confusing thing is, that the combination SAAJ 1.1 + Xalan 2.5 works just fine.

Similar Messages

  • Error consuming Web service - content type text/xml;charset=utf-8 of the response message does not match the content type of the binding

    Hi all,
    We are trying to interact with Documentum server through DFS exposed WCF which communicates through port 9443 and we are provided with documentum issued Public Key certificates. We have successfully imported the certificates in client machine and configured
    the bindings as below in our .Net web application config file.
    <system.serviceModel>
    <bindings>
    <wsHttpBinding>       
    <binding
    name="ObjectServicePortBinding1">
    <security
    mode="Transport">
    <transport
    clientCredentialType="None"
    proxyCredentialType="None"
    realm=""
    />
    <message
    clientCredentialType="Certificate"
    algorithmSuite="Default"
    />
    </security>
    </binding>
    <binding
    name="QueryServicePortBinding">
    <security
    mode="Transport">
    <transport
    clientCredentialType="None"
    proxyCredentialType="None"
    realm=""
    />
    <message
    clientCredentialType="Certificate"
    algorithmSuite="Default"
    />
    </security>
    </binding>
    </wsHttpBinding>
    </bindings>
    Also, we set the message encoding as MTOM and the wcf client object initialization code snippet is as below,
    ObjectServicePortClient
    serviceClient = new
    ObjectServicePortClient(new
    WSHttpBinding("ObjectServicePortBinding1"),
    new
    EndpointAddress(UriUtil.ObjectServiceUri));
    if (serviceClient.Endpoint.Binding
    is
    WSHttpBinding)
       WSHttpBinding
    wsBinding = serviceClient.Endpoint.Binding as
    WSHttpBinding;
    wsBinding.MessageEncoding =
    "MTOM".Equals(transferMode) ?
    WSMessageEncoding.Mtom :
    WSMessageEncoding.Text;
    serviceClient.Endpoint.Behaviors.Add(new
    ServiceContextBehavior(Config.RepositoryName,
    Config.DocumentumUserName,
    Config.DocumentumPassword));
    When we execute the above code, we are getting error message as below,
    Exception: The content type text/xml;charset=utf-8 of the response message does not match the content type of the binding (multipart/related; type="application/xop+xml"). If using a custom encoder, be sure that the IsContentTypeSupported
    method is implemented properly. The first 407 bytes of the response were: '<?xml version="1.0" ?><S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"><S:Body><S:Fault xmlns:ns4="http://www.w3.org/2003/05/soap-envelope"><faultcode>S:VersionMismatch</faultcode><faultstring>Couldn't
    create SOAP message. Expecting Envelope in namespace http://schemas.xmlsoap.org/soap/envelope/, but got http://www.w3.org/2003/05/soap-envelope </faultstring></S:Fault></S:Body></S:Envelope>'
    Then, we changed the bindings as below
    <system.serviceModel>
    <bindings>
    <wsHttpBinding>       
    <binding
    name="ObjectServicePortBinding1">
    <security
    mode="Transport">
    <transport
    clientCredentialType="Certificate"
    proxyCredentialType="None"
    realm=""
    />
    <message
    clientCredentialType="Certificate"
    algorithmSuite="Default"
    />
    </security>
    </binding>
    <binding
    name="QueryServicePortBinding">
    <security
    mode="Transport">
    <transport
    clientCredentialType="
    Certificate"
    proxyCredentialType="None"
    realm=""
    />
    <message
    clientCredentialType="Certificate"
    algorithmSuite="Default"
    />
    </security>
    </binding>
    </wsHttpBinding>
    </bindings>
    We are getting another error message,
    Exception: The client certificate is not provided. Specify a client certificate in ClientCredentials.
    Any pointers on resolving this issue would be highly helpful.
    Thanks

    Hi Dhanasegaran,
      As per your case, the corresponding details which may guide you to resolve this issue:
    1. First of all, you can try to call the wcf service directly from the browser & check where it will point out the correct location.
    2. In config file ,Set IncludeExceptionDetailInFaults to true to enable exception information to flow to clients for debugging purposes .
    Set this to true only during development to troubleshoot a service like below :
    <serviceBehaviors>
      <behavior name="metadataAndDebugEnabled">
        <serviceDebug
          includeExceptionDetailInFaults="true"   
    />
        <serviceMetadata
          httpGetEnabled="true"
          httpGetUrl=""   
    />
      </behavior>
    </serviceBehaviors>
    3. I suggest you to change that <security mode ="TransportWithMessageCredential"> instead of <security mode ="Transport">
     for more information, refer the following link :
    https://msdn.microsoft.com/en-us/library/aa354508(v=vs.110).aspx

  • Response message from stored procedure

    I have created  the stored procedure(oracle)
    CREATE OR REPLACE PROCEDURE UPDATE_INSERT(sHID IN VARCHAR2,sZNAME IN VARCHAR2,sZDATE IN DATE)IS
    I NUMBER;
    BEGIN
    SELECT COUNT(HID) INTO I FROM ZSO_H WHERE HID = sHID;
    IF I > 0
    THEN
    begin
    DELETE FROM ZSO_H WHERE HID = sHID;
    end;
    END IF;
    INSERT INTO zso_h VALUES(sHID,sZNAME,sZDATE);
    commit;
    END UPDATE_INSERT;
    It's proxy to jdbc synchronous scenario.
    I can see data saved in the table, and sucessfull in communication channel monitoring.
    but sxmn_moni, get error,(SAP system)
    <SAP:AdditionalText>com.sap.aii.af.ra.ms.api.DeliveryException</SAP:AdditionalText>
      <SAP:ApplicationFaultMessage namespace="" />
      <SAP:Stack />
      <SAP:Retry>M</SAP:Retry>
    sxmb_moni in XI
      <?xml version="1.0" encoding="utf-8" ?>
    - <ns0:t002_ora_response xmlns:ns0="http://topfine.com/proxy">
      <st3_response />
      <st3_response />
      <st3_response />
      <st3_response />
      <st3_response />
      </ns0:t002_ora_response>
    but structure is
       <st3_response>
          <insert_count/>
          <update_count/>
       </st3_response>
    and the db request message is
    <?xml version="1.0" encoding="UTF-8" ?>
    - <ns0:t002_ora xmlns:ns0="http://topfine.com/proxy">
    - <st3>
    - <spName action="execute">
      <table>UPDATE_INSERT</table>
      <SHID type="VARCHAR">21</SHID>
      <SZNAME type="VARCHAR">21</SZNAME>
      <SZDATE type="DATE">2010-11-21</SZDATE>
      </spName>
      </st3>
    - <st3>
    - <spName action="execute">
      <table>UPDATE_INSERT</table>
      <SHID type="VARCHAR">22</SHID>
      <SZNAME type="VARCHAR">22</SZNAME>
      <SZDATE type="DATE">2010-11-21</SZDATE>
      </spName>
      </st3>
    then how to get update_count in  response message?
    Edited by: Shen Peng on Nov 21, 2010 8:35 AM

    Can you jus let know totally how many are getting Updated and inserted for the Proxy u sent....I am guessin the response from ur DB is
    <?xml version="1.0" encoding="utf-8" ?>
    - <ns0:t002_ora_response xmlns:ns0="http://topfine.com/proxy">
    <st3_response />
    <st3_response />
    <st3_response />
    <st3_response />
    <st3_response />
    </ns0:t002_ora_response>
    So probably four records are getting updated or inserted...
    Check this blog may be helpful
    /people/siva.maranani/blog/2005/09/16/xi-how-to-on-jdbc-receiver-response

  • SOAP: response message contains an error

    Hi,
    I send a message by PI to a service and I get the following message:
    SOAP: response message contains an error XIAdapter/PARSING/ADAPTER.SOAP_EXCEPTION - soap fault: No such operation SETCOMPANYFIELDVALUERequest
    The scenario that I use is a RFC --> PI --> SOAP. The WSDL looks like this:
    <?xml version="1.0" encoding="UTF-8"?>
    <wsdl:definitions targetNamespace="urn:DefaultNamespace" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:impl="urn:DefaultNamespace" xmlns:intf="urn:DefaultNamespace" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <wsdl:message name="SETCOMPANYFIELDVALUERequest">
      <wsdl:part name="COMPANYNAME1" type="xsd:string"/>
      <wsdl:part name="COMPANYNAME2" type="xsd:string"/>
    </wsdl:message>
    <wsdl:message name="SETCOMPANYFIELDVALUEResponse">
      <wsdl:part name="SETCOMPANYFIELDVALUEReturn" type="xsd:anyType"/>
    </wsdl:message>
    <wsdl:portType name="AppLSDataSync">
      <wsdl:operation name="SETCOMPANYFIELDVALUE" parameterOrder="COMPANYNAME1 COMPANYNAME2">
       <wsdl:input message="intf:SETCOMPANYFIELDVALUERequest" name="SETCOMPANYFIELDVALUERequest"/>
       <wsdl:output message="intf:SETCOMPANYFIELDVALUEResponse" name="SETCOMPANYFIELDVALUEResponse"/>
      </wsdl:operation>
    </wsdl:portType>
    <wsdl:binding name="DominoSoapBinding" type="intf:AppLSDataSync">
      <wsdlsoap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
      <wsdl:operation name="SETCOMPANYFIELDVALUE">
       <wsdlsoap:operation soapAction="SETCOMPANYFIELDVALUE"/>
       <wsdl:input name="SETCOMPANYFIELDVALUERequest">
        <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:DefaultNamespace" use="encoded"/>
       </wsdl:input>
       <wsdl:output name="SETCOMPANYFIELDVALUEResponse">
        <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:DefaultNamespace" use="encoded"/>
       </wsdl:output>
      </wsdl:operation>
    </wsdl:binding>
    <wsdl:service name="AppLSDataSyncService">
      <wsdl:port binding="intf:DominoSoapBinding" name="Domino">
       <wsdlsoap:address location="http://localhost"/>
      </wsdl:port>
    </wsdl:service>
    </wsdl:definitions>
    When I send the same message using the WebServiceNavigator everything is working fine.
    The WSDL that I have imported into PI is the same that is available that I use calling by the WSNavigator.
    Anyone an Idea?
    Thanks Ron

    HI
    WSDL is having some problem
    When you imported this wsdl how many messages does it show. Check weather it is having SETCOMPANYFIELDVALUE request and response. you can check the messages carried in a wsdl using the messages tab in external definition.
    Thanks

  • Problem accessing value of response message of synchronous call in BPM

    Hello,
    I've a problem with a synchronous sending step (in BPM) and a following container operation.
    In the message monitoring I can see the right response of the sending step. But the value of the container is empty.
    If I navigate from the container of the sending step to the message, I can also see the right message.
    But I can't access any elements in the message, they will be ignored.
    Here is the response message:
    <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
    - <!--  Inbound Message
      -->
    - <ns0:Envelope xmlns:ns0="http://xmlns.bp.com/UEHReply" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
    - <ns0:Header>
      <ns0:Event businessDocRef="" component="VEST" domain="MyPoCVest" id="" objectPayloadRef="" timestamp="" />
      </ns0:Header>
    - <ns0:Body>
    - <ns0:ObjectPayload id="" version="">
    - <ns0:uehReply version="2.0">
    - <ns0:component type="BUSINESS">
      <ns0:name>VEST</ns0:name>
      <ns0:application>Vest</ns0:application>
      </ns0:component>
    - <ns0:exception id="0" type="">
      <ns0:triggerMsg format="" />
      </ns0:exception>
      <ns0:detail />
      <ns0:resolutionOption>WAIT</ns0:resolutionOption>
      <ns0:nextChoice>NONE</ns0:nextChoice>
      </ns0:uehReply>
      </ns0:ObjectPayload>
      </ns0:Body>
      </ns0:Envelope>
    And the XPath statement, to get the value:
    /p2:Envelope/p2:Body/p2:ObjectPayload/p2:uehReply/p2:resolutionOption
    Someone an idea?
    Cheers
    Daniel

    Hi ,
    I am facing similar problem , in case you have a resolution about the FAX number , then please let me know .
    Thanks,
    Abhishek
    ([email protected])

  • Axis Web Service SOAP Response without namespace

    Hi folks,
    I use the Axis Framework and eclipse to create a Webservice. I wrote a Method which returns a List of customers(complex Element). When I execute the method I get the following result:
    <soapenv:Body>
    <getAllCustomersResponse>
    <ns1:getAllCustomersReturn>
    <ns1:email>[email protected]</ns1:email>
    <ns1:id>5</ns1:id>
    <ns1:name>Hendrik</ns1:name>
    </ns1:getAllCustomersReturn>
    <ns2:getAllCustomersReturn>
    <ns2:email>[email protected]</ns1:email>
    <ns2:id>6</ns1:id>
    <ns2:name>Masen</ns1:name>
    </ns2:getAllCustomersReturn>
    </getAllCustomersResponse>
    </soapenv:Body>
    How can I configure Axis that I get the result without namespace  like this: ?
    <soapenv:Body>
    <getAllCustomersResponse>
    <getAllCustomersReturn>
    <email>[email protected]</ns1:email>
    <id>5</ns1:id>
    <name>Hendrik</ns1:name>
    </getAllCustomersReturn>
    <getAllCustomersReturn>
    <email>[email protected]</ns1:email>
    <id>6</ns1:id>
    <name>Masen</ns1:name>
    </getAllCustomersReturn>
    </getAllCustomersResponse>
    </soapenv:Body>
    Thanks for your help
    Edited by: Heno on Apr 27, 2009 1:28 AM

    I just had the same problem and solved it like this: I modified the WSDL slightly by removing the prefix from the reference to the element of the response message, as well as the "targetNamespace" in the xsd:schema segment of the WSDL. Like this, SAP is able to parse the response.
    Philippe

  • OSB and WSDL response message

    Hi all,
    from the WSDL, that I put at bottom of this post, I've created a new OSB project importing the WSDL itself and creating a proxy service based on it.
    I've implemented it using the fn-bea:execute-sql function:
    <ctx:route><ctx:service>{   
    fn-bea:execute-sql (
    $myDataSource,
    'resultset',
    'SELECT id, name, type_id, domi_country_id, open_date, close_date FROM myTable WHERE id=?',
    xs:string($body/urn:clientDataLookup/portfolioNumber/text())
    }</ctx:service></ctx:route>
    For getting the response, in the pipeline reponse I added a REPLACE action:
    Replace [ node contents ] of [ . ]
    in [ body ] with
    [ <urn:clientDataLookupResponse>
    <xmlCntent>{ $result/con:service/resultset }</xmlCntent>
    </urn:clientDataLookupResponse>
    I deduced the above xml response message using the OSB xquery wizard navigating through variable structure section and selecting $body - clientDataLookup (response) variable:
    $body/urn:clientDataLookupResponse/xmlCntent
    from that xpath expression I deduced the above xml response message.
    My question: is that approach correct ? Why should I rewrite the xml response message ?
    I'm wondering how to allow OSB to generate the correct xml response message in automatic way and then use it as template and fill only the xmlCntent param.
    Thanks in advance
    ferp
    <definitions name="ClientDataLookup"
    targetNamespace="http://wsdl/ClientDataLookup.wsdl"
    xmlns="http://schemas.xmlsoap.org/wsdl/"
    xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
    xmlns:tns="http://wsdl/ClientDataLookup.wsdl"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <message name="ClientDataRequest">
    <part name="buId" type="xsd:string"/>
    <part name="portfolioNumber" type="xsd:string"/>
    </message>
    <message name="ClientDataResponse">
    <part name="xmlCntent" type="xsd:string"/>
    </message>
    <portType name="ClientData_PortType">
    <operation name="clientDataLookup">
    <input message="tns:ClientDataRequest"/>
    <output message="tns:ClientDataResponse"/>
    </operation>
    </portType>
    <binding name="ClientData_Binding" type="tns:ClientData_PortType">
    <soap:binding style="rpc"
    transport="http://schemas.xmlsoap.org/soap/http"/>
    <operation name="clientDataLookup">
    <soap:operation soapAction="clientDataLookup"/>
    <input>
    <soap:body
    encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
    namespace="urn:bsource:dataservice"
    use="encoded"/>
    </input>
    <output>
    <soap:body
    encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
    namespace="urn:bsource:clientdataservice"
    use="encoded"/>
    </output>
    </operation>
    </binding>
    <service name="ClientDataService">
    <documentation>WSDL File for Client Data Lookup</documentation>
    <port binding="tns:ClientData_Binding" name="ClientData_Port">
    <soap:address
    location="http://localhost:8080/soap/servlet/rpcrouter"/>
    </port>
    </service>
    </definitions>

    In most common use cases a service bus transforms the messages from one format to other. In your case you are actually doing the same. You are transforming the message from database structure to the structure which is defined by the WSDL. The snippet you are using is not XML, its an XQuery snippet. There is nothing unusual about it. The tree structure in the left side is given for that purpose only, to facilitate writing XPaths and XQuery snippets. If you do not want to type anything and want to get it graphically (or example when its a big XML), use Eclipse IDE of OSB and create a XQuery transformation which you can call from OSB message flow.
    Edited by: AbhishekJ on Nov 11, 2011 12:57 AM

  • Missing response message in Idoc - WS scenario

    Hello
    I 'm missing a response message in the follwing scenario:
    Idoc-> XI -> Web service (SOAP)
    A Matmas idoc is sent from R/3 to XI. In XI the Idoc is
    mapped to a SOAP message and sent to a web service.
    The Message Interface for the SOAP call is synchronous
    and has a PushMaterialSoapOut and a PushMaterialSoapIn
    messsage, which is defined in the WSDL from the
    web service and imported into XI Repository.
    Everything is working fine but I do not get the response
    message. The web service has sent the response message. I
    have traced the firewall logs and i have seen the
    response.
    What is wrong? Is it basically possible to have a
    scenario like this?
    The message must have arrived somewhere, since the web
    server does not throw an exception. But where is it?
    Thank you in advance
    Thomas

    Hello Stefan
    >Scenarios with IDOCs are always async. Therefore you
    >cannot have a response.
    Ok, so I have to use BPM.
    >How do you want to process the response? What should
    >happen in the sender system?
    I was thinking about an ALEAUD idoc which is sent back
    to R/3. Therefor I have created an synchronous message
    interface with the MATMAS idoc as outgoing message and an
    ALEAUD as incoming message. Accordingly I have a message
    mapping for the response message.
    An other reaction to the response message could be to set
    the message to status failed. But this is the next issue.
    >In some scenarios you might use a BAPI instead of an
    >IDOC for synchronous message processing, but this
    >depends of many circumstance depending ofyour business
    >requirement.
    The process in SAP R/3 is fixed. To move to BAPI is not
    an option.
    Regards
    Thomas

  • Error:SOAP: response message contains an error XIAdapter/PARSING/ADAPTER.SOAP_EXCEPTION - soap fault: Server was unable to read request. --- There is an error in XML document (1, 447). --- Input string was not in a correct format.

    Hi All,
        We have a scenario of FTP-->PI---> Webservice.  While triggering the data in the FTP, it is failing in the PI with the below error
    SOAP: response message contains an error XIAdapter/PARSING/ADAPTER.SOAP_EXCEPTION - soap fault: Server was unable to read request. ---> There is an error in XML document (1, 447). ---> Input string was not in a correct format.
    Can you please help?

    Hi Raja- It seems to be a data quality issue.
    Check for the value @ 1447 position in the xml message that you are trying to send to web service..
    may be a date filed/decimal value which is not in expected format.

  • WCF-Custom performance problem with large response messages

    We're trying to debug a performance issue in Biztalk 2013 when using a WCF-Custom adapter to call en external WCF-enpoint.
    From a Biztalk orchestration we're calling en external WCF-service to retrieve an xml message sometimes containing a lot of Base64 encoded data. The response message can be up to 10Mb in size. The send port is very slow in retrieving the response
    and a 10Mb message can take up to 3min to retrieve. For comparison we've made a console program with the same service reference and binding as the Biztalk adapter uses and we can retrieve the same message in about 3 seconds.
    The WCF is using binary encoding over http and we've set the maxMessageSize, maxBufferSize and maxBufferPoolSize to Int32-MaxValue. We realise that using Biztalk there will be overhead because the message is put into the message box but we're unsure how
    to improve the performance of the send port.
    Any suggestions?

    Hello,
    There are certain Optimization you can do with your BizTalk.
    1)The first thing that I would do is to check the BizTalk SQL server jobs are running correctly
     (SQL Sever Mgmt Studio –> SQL Server Agent –> Jobs). Lookout for the jobs with the word “CleanUp” in them.
    2)Another check that you could do is to verify the entries in the Spool table
     (Database[@Name='BizTalkMsgBoxDb']/Table[@Name='Spool']). Ideally, the number of entries should not be HUGE
     (as in not over 100/200 entries)
    3) Create seperate host and host handler for your send Port.
    4) Set The MaxReceiveInterval from adm_service(BizTalk Management DB) class table 100 ms from 500(By default).
    5)Increased the Throttling Settings Internal message queue size to 1000 from 100 In new Application Host.
    6)Set the Maximum number of messaging engine threads per CPU to 40 (By default it is 20).
    7) Add Max connection in your BTSNTSVC.exe.config file
    <system.net>
                <connectionManagement>
                            <add address
    = “*” maxConnections = “300” />
                </connectionManagement>
    </system.net>
    For other setting you can look for BizTalk Optimization Guide
    http://www.microsoft.com/en-ca/download/details.aspx?id=10855 
    Above setting are for generic performance enhancement purpose.
    Note: You can verify through Orchestration debugger or Orchestration tracing how much time send port is and pipeline is taking to publish the message to Biz Talk again .
    These will give you better picture what more settings you need to apply .
    Thanks
    Abhishek

  • Sharepoint error - Search Issue - The content type text/html; charset=utf-8 of the response message does not match the content type of the binding (application/soap+msbin1).

    i see this error everywhere - In ULS logs, on site. On the site > Site settings > search keywords; I see this - 
    The content type text/html; charset=utf-8 of the response message does not match the content type of the binding (application/soap+msbin1). If using a custom encoder, be sure that the IsContentTypeSupported method is implemented properly. The first 1024 bytes of the response were: '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>IIS 7.0 Detailed Error - 500.19 - Internal Server Error</title> <style type="text/css"> <!-- body{margin:0;font-size:.7em;font-family:Verdana,Arial,Helvetica,sans-serif;background:#CBE1EF;} code{margin:0;color:#006600;font-size:1.1em;font-weight:bold;} .config_source code{font-size:.8em;color:#000000;} pre{margin:0;font-size:1.4em;word-wrap:break-word;} ul,ol{margin:10px 0 10px 40px;} ul.first,ol.first{margin-top:5px;} fieldset{padding:0 15px 10px 15px;} .summary-container fieldset{padding-bottom:5px;margin-top:4px;} legend.no-expand-all{padding:2px 15px 4px 10px;margin:0 0 0 -12px;} legend{color:#333333;padding:4px 15px 4px 10px;margin:4px 0 8px -12px;_margin-top:0px; border-top:1px solid #EDEDED;border-left:1px solid #EDEDED;border-right:1px solid #969696; border-bottom:1px solid #969696;background:#E7ECF0;font-weight:bold;'.
    I am facing issues in searching, my managed metadata service is not running, search results page throws internal error. Any Idea why this above error comes.
    P.S: We use windows authentication in our environment.

    Hi IMSunny,
    It seems you have solved this issue based on your another post.
    http://social.technet.microsoft.com/Forums/en-US/aa468ab0-1242-4ba8-97ea-1a3eb0c525c0/search-results-page-throws-internal-server-error?forum=sharepointgeneralprevious
    Thanks
    Daniel Yang
    TechNet Community Support

  • WCF returning "The content type text/html of the response message does not match the content type of the binding (application/soap+xml; charset=utf-8)"

    I have a WCF service I am trying to run on a new installation of 64-bit Windows Server 2008 IIS. Although it runs fine on Windows 2003 IIS, it is throwing the error in the thread title, which appears to be a server config issue, but I am not sure. Googling and searching the MSDN forums did not turn up a solution. I tried running WCF Logging, but that didn't help either.
    Does anyone have any suggestions on how to solve this probelm?
    Here is the error:
    The content type text/html of the response message does not match the content type of the binding (application/soap+xml; charset=utf-8). If using a custom encoder, be sure that the IsContentTypeSupported method is implemented properly. The first 1024 bytes of the response were: '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
    <title>500 - Internal server error.</title>
    <style type="text/css">

    I have the same issue on Windows 7 machine. The service works fine using a SoapUI client but a .Net client faisl to get a response.
    Hi,
    I have a WCF service which works perfectly when using SoapUI but throws error in my .Net client.
    {"The content type text/html; charset=UTF-8 of the response message does not match the content type of the binding (text/xml; charset=utf-8). If using a custom encoder, be sure that the IsContentTypeSupported method is implemented properly. The first
    1024 bytes of the response were: '<HTML><HEAD><link rel=\"alternate\" type=\"text/xml\" href=\"http://xyz.mysite.com/ysa/Broker.svc?disco\"/><STYLE type=\"text/css\">#content{ FONT-SIZE: 0.7em;
    PADDING-BOTTOM: 2em; MARGIN-LEFT: 30px}BODY{MARGIN-TOP: 0px; MARGIN-LEFT: 0px; COLOR: #000000; FONT-FAMILY: Verdana; BACKGROUND-COLOR: white}P{MARGIN-TOP: 0px; MARGIN-BOTTOM: 12px; COLOR: #000000; FONT-FAMILY: Verdana}PRE{BORDER-RIGHT: #f0f0e0 1px solid; PADDING-RIGHT:
    5px; BORDER-TOP: #f0f0e0 1px solid; MARGIN-TOP: -5px; PADDING-LEFT: 5px; FONT-SIZE: 1.2em; PADDING-BOTTOM: 5px; BORDER-LEFT: #f0f0e0 1px solid; PADDING-TOP: 5px; BORDER-BOTTOM: #f0f0e0 1px solid; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e5e5cc}.heading1{MARGIN-TOP:
    0px; PADDING-LEFT: 15px; FONT-WEIGHT: normal; FONT-SIZE: 26px; MARGIN-BOTTOM: 0px; PADDING-BOTTOM: 3px; MARGIN-LEFT: -30px; WIDTH: 100%; COLOR: #ffffff; PADDING-TOP: 10px; FONT-FAMILY: Tahoma; BACKGROUND-COLOR: #003366}.intro{MARGIN-LEFT: -15px}</STYLE><TITLE>Broker
    Service</TITLE></HEAD><BODY><DIV id=\"content\"><P class=\"head'."}
    I have the same service hosted on my local machine and when I point to the local service I can execute the operation with no issues. The message encoding is Soap11. I tried changing to Soap12 but I get exact same error. Any ideas greatly appreciated.
    I do have windows Activation Features installed and I am using .Net Framework 4.
    Thanks
    Sofia Khatoon

  • The content type of the response message does not match the content type of the binding

    I have written an ASP.Net web service which returns english,chinese and portuguese data. Everything seemed working fine until the method retunred only english data. The moment it returns english, chinese and portuguese data I get the error:
    The content type text/html; charset=utf-8 of the response message does not match the content type of the binding (text/xml; charset=utf-8). If using
    a custom encoder, be sure that the IsContentTypeSupported method is implemented properly. The first 1024 bytes of the response were: 
    '<!DOCTYPE html> <html>     <head>         <title>Runtime Error</title>
            <meta name="viewport" content="width=device-width" />         <style>          body {font-family:"Verdana";font-weight:normal;font-size:
    .7em;color:black;}           p {font-family:"Verdana";font-weight:normal;color:black;margin- -5px}          b {font-family:"Verdana";font-weight:bold;color:black;margin-
             H1 { font-family:"Verdana";font-weight:normal;font-size:18pt;color:red }          H2 { font-family:"Verdana";font-weight:normal;font-size:14pt;color:maroon
    }          pre {font-family:"Consolas","Lucida Console",Monospace;font-size:11pt;margin:0;padding:0.5em;line-height:14pt}          .marker {font-weight:
    bold; color: black;text-decoration: none;}          .version {color: gray;}          .error {margin-bottom: 10px;}          .expandable
    { text-decoration:underline; font-weight:bold; color:navy; cursor:hand; }          @media screen and (max-width: 639px) {           pre { width: 440px; o'.
    It is not written using WCF ... any workarounds?!
    Thank you.

    Hi Raj Krish,
    For ASP.NET related issue, please post to the following forum:
    http://forums.asp.net/
    Regards,
    Barry
    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click
    HERE to participate the survey.

  • In Synch comm, what happens to response message if sender fails?

    Hi All,
    I have came up with the following question:
    I have a synchronous scenario type: WS -> PI -> Proxy.
    Lets say that the external system is able to consume the Web Service, and send the data to PI, and from there to the SAP ERP.  SAP ERP starts processing the message (calling function, BAPIs, etc). During that execution the external system for some how cuts its connection (session) to the WS that PI is exposing.
    What will happen then?
    In SAP ERP I will have some processes that were executed, the response message will be sent back to PI, but not to the legacy system.  So the data will not be consistent, as ERP was able to perform its process but the Legacy system will never know that these were done, so I will have an unbalanced scenario.
    One of my questions is, will SAP ERP know that the connection between the legacy system and PI was cut, and there for ERP will stop, cancel or not perform its processes?
    If the response message was sent back to PI by the ERP, but this message could not reach the legacy system. How can we let know the legacy system that ERP did all of its processes and that it should "update" their data according to the response message sent by ERP?
    As we all know, we can not re-process a synchronous message. So, what will be the best way to mantaining the consistency of the DATA between the two systems (ERP - Legacy)?
    Thanks and regards,
    Felipe

    One of my questions is, will SAP ERP know that the connection between the legacy system and
    PI was cut, and there for ERP will stop, cancel or not perform its processes?
    There is a possibility of triggering an alert when your Target system is down (i suppose this is what you mean when you say connection is cut)....the udf can be implemented in a mapping.....just check the blog:
    /people/bhavesh.kantilal/blog/2006/07/25/triggering-xi-alerts-from-a-user-defined-function
    from the blog:
    We can use this code in the Exception Handler block of the try u2013 catch block of the code to
    publish the JMS message, and, whenever the JMS service was down, the Exception handler block is
    called and the Alert is triggered to the Operations Support team.
    check if this suits your requirement
    Regards,
    Abhishek.

  • SOAP: response message contains an error XIAdapter/HTTP/ADAPTER.HTTP_EXCEPT

    Hi there,
    I am trying to publish a file from SAP as web service using XI and SOAP Adapter.
    I am using ABAP proxy to get the data into XI.
    Designing and Configuration in XI has no problems because when i use File adapter the data is trasmitted to FTP server.
    But when I used SOAP Reciever adapter I am getting following error in RWB
    Delivery of the message to the application using connection SOAP_http://sap.com/xi/XI/System failed, due to: com.sap.aii.af.ra.ms.api.RecoverableException: SOAP: response message contains an error XIAdapter/HTTP/ADAPTER.HTTP_EXCEPTION - HTTP 500 Error during parsing of SOAP header.
    <b>Scenario</b>: SAP ABAP Proxy -> XI -> WebService. Asynchronous.
    <b>SOAP</b> Receiver adaptor.
    <b>Target URL</b> http://<host>:<port number >/sap/xi/engine?type=entry&version=3.0&Sender.Service=SAPDC2653&Interface=urn:bzttest:00:hsa:test%5EOB_MI_BZT_TEST&QualityOfService=ExactlyOnce
    Do not use SOAP Envelop is checked.
    <b>SOAP Action</b> http://sap.com/xi/WebService/soap1.1
    What i am missing here? How should I solve this problem?
    Any help is appreciated,
    Thx,
    Yogi

    Say there's a bapi/rfc that you want to call on an R/3 backend (e.g. 4.6c).  On it's own, the R/3 system cannot expose the rfc/bapi as a web service, but XI can.  So in this case, the scenario would be:
    WS client -> XI -> R/3
    When XI "exposes" a web service, it is exposing a service for a receiving system (in the above example, the R/3 system).  XI itself does not provide or contain the service implementation.  When XI exposes a web service, it is always done via the <b>sender</b> soap adapter (i.e. if soap adapter is used).   Receiver soap adapter is used to call or consume an actual web service from an external application.
    Regards,
    Jin

Maybe you are looking for