SOAP Receiver: Problem with SOAP Multipart Request (wsdl:part)

Dear PI experts,
our partner provided a WSDL with the following definition (I modified it to keep it simple and showing the principles)
   <wsdl:message name="nameOfMessage">
      <wsdl:part element="part1" name="header" />
      <wsdl:part element="part2" name="parameters" />
      <wsdl:part element="part3" name="attachment" />
   </wsdl:message>
After importing this WSDL in ESR, I found the following definition on tab 'WSDL':
         <xsd:complexType name="nameOfMessage">
            <xsd:sequence>
               <xsd:element name="header" type="authentication" />
               <xsd:element name="parameters" type="businessDatal" />
               <xsd:element name="attachment" type="Binary" />
            </xsd:sequence>
         </xsd:complexType>
When creating the request message in PI it looks as follows:
<nameOfMessage>
<header/>
<parameters/>
<attachment/>
</nameOfMessage>
However our WebService provider expects the following:
<soap:env>
<authentication/>
<parameters/>
<attachment/>
</soap:env>
When using SoapUI and importing the WSDL the request message looks as expected by the web service provider and the part names are resolved.
I could try to convert the request using XSLT but this does not seem to be a best practice approach.
Do you have any advice on how to handle this issue?
Thank you very much.

Hi Florian,
I modified some WS to be handled by another systems, and sometimes, when the SOAP adapter is involved, you send a Request to PI (that has NOT the same structure, than the declared in the MM) but it takes the req. anyway.
Did you try sending a request?
  Juan.

Similar Messages

  • Synchronous RFC -- SOAP Scenario: problem with SOAP Response/Fault Mapping

    Hi,
    I've a synchronous RFC --> PI --> SOAP Scenario. The problem is that the message structure of the sending RFC doesn't match the Webservice Structure.
    The (SAP standard) RFC has just a Request / Response message structure. Part of the Response Message structure is a exception structure.
    The Webservice has a Request / Response message structure and in case of an error I get a SOAP:Fault.
    Problem now is that I cannot configure that scenario without usage of BPM as I will have to map SOAP:Response or SOAP:Fault to the RFC Response structure.
    Has anybody another idea to do that synchronous scenario (with usage of message mapping) without BPM?
    BR
    Holger

    1)
    you maus define 3 mapping.
    1)request
    2)response
    3)Fault
    in Interface mapping define at response boths (2-3) mapping. its clear??
    2)
    otherwise sometjhing is not clear, why do you want fault?? why dont you  get only response message. we implement this kind of response:
    <response_MT>
    <ID> (error ID)
    <system> (target system) 
    <error> (Error Description)
    </response>
    by this way fault message is not needed. but if you must have it just follow the top of message else, propose second.
    Thanks
    Rodrigo
    Thanks
    Rodrigo
    Edited by: Rodrigo Pertierra on Feb 25, 2008 11:52 AM

  • SOAP Receiver problem

    Hi everyone.
    I'm facing a new problem with SOAP Receiver adapter.
    We have an WSDL that works perfectly using SOAP Clients such as SOAPUI or StylusStudio. End-point is HTTPS://XXXXX:XXX/XXXXX
    WSDL is like this :
    <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
    <!--  Call Adapter
      -->
    <tes:registraEntrada0Request xmlns:tes="http://testing.com" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
      <asu_id>SIO7</asu_id>
      <asu_descripcion>desc</asu_descripcion>
      <uo_id>1272</uo_id>
      <nombre>nombre</nombre>
      <ape1>ape1</ape1>
      <ape2>ape2</ape2>
      <usu_id>virtualdesa</usu_id>
      <usu_pass>virtualdesa</usu_pass>
    </tes:registraEntrada0Request>
    Problem is when i try to use this webservice from XI using a SOAP Receiver communication channel. I get a strange error :
    soap fault: No Deserializer found to deserialize a ':asu_id' using encoding style 'null'. [java.lang.IllegalArgumentException]
    I don't know if the problem is because HTTPS. All the process has been defined correctly in XI and my doubt is about the configuration of the RECEIVER SOAP or the WSDL structure.
    Hope you can help me
    Regards,
    Inigo.

    hi,
    check out response by Ricardo,
    Re: Error in Receiver Soap Adapter for Google API
    maybe you need to fill some attributes in an adapter module like mentioned there
    Regards,
    michal

  • Another problem with SOAP sender

    I have another problem with SOAP scenario in a different environment (PI 7.0) from my earlier post.
    Scenario:
    Soap Sender -> PI -> Soap Receiver
    Following steps from GoogleSearch SOAP scenario in the SAP How-to Guide for SAP NetWeaver '04 entitled: "How To... Use the XI 3.0 SOAP Adapter" version 1.00 - March 2006.
    I have loaded in the api.google.com/GoogleSearch.wsdl file as an External definition and created the SOAP receiver as described in the How-to guide.  It takes a doGoogleSearch as input and sends back a doGoogleSearchResponse (Sync Call). 
    Note that the GoogleSearch.wsdl contains a complex type ResultElementArray that refers to ResultElement\[\], and a DirectoryCategoryArray that refers to DirectoryCategory\[\].  The ResultElement and DirectoryCategory types are defined in the GoogleSearch.wsdl file.
    Problem One:
    The generated WSDL for the SOAP sender contains the ResultElementArray and DirectoryCategoryArray types but it DOES NOT contain the required ResultElement and DirectoryCategory types.  XML Spy complains that this WSDL is not valid because the type ResultElement\[\] is not defined.
    Problem Two:
    I generate a SOAP message in XML Spy, provide values for the doGoogleSearch fields, and send.  In SXMB_MONI, the SOAP sender payload contains only the <key> value from the doGoogleSearch message body, i.e. <part name="key" type="xsd:string" />
    The other doGoogleSearch fields seem to be missing, i.e.
      <part name="q" type="xsd:string" />
      <part name="start" type="xsd:int" />
      <part name="maxResults" type="xsd:int" />
      <part name="filter" type="xsd:boolean" />
      <part name="restrict" type="xsd:string" />
      <part name="safeSearch" type="xsd:boolean" />
      <part name="lr" type="xsd:string" />
      <part name="ie" type="xsd:string" />
      <part name="oe" type="xsd:string" />
    Does anyone know why:
    (1) PI/XI seems to leave out the ResultElement and DirectoryCategory types from the SOAP sender service WSDL file?
    (2) The doGoogleSearch message seen in SXMB_MONI contains only the first <key> field, and not the other fields?
    Thanks for any help with this.

    I have another problem with SOAP scenario in a different environment (PI 7.0) from my earlier post.
    Scenario:
    Soap Sender -> PI -> Soap Receiver
    Following steps from GoogleSearch SOAP scenario in the SAP How-to Guide for SAP NetWeaver '04 entitled: "How To... Use the XI 3.0 SOAP Adapter" version 1.00 - March 2006.
    I have loaded in the api.google.com/GoogleSearch.wsdl file as an External definition and created the SOAP receiver as described in the How-to guide.  It takes a doGoogleSearch as input and sends back a doGoogleSearchResponse (Sync Call). 
    Note that the GoogleSearch.wsdl contains a complex type ResultElementArray that refers to ResultElement\[\], and a DirectoryCategoryArray that refers to DirectoryCategory\[\].  The ResultElement and DirectoryCategory types are defined in the GoogleSearch.wsdl file.
    Problem One:
    The generated WSDL for the SOAP sender contains the ResultElementArray and DirectoryCategoryArray types but it DOES NOT contain the required ResultElement and DirectoryCategory types.  XML Spy complains that this WSDL is not valid because the type ResultElement\[\] is not defined.
    Problem Two:
    I generate a SOAP message in XML Spy, provide values for the doGoogleSearch fields, and send.  In SXMB_MONI, the SOAP sender payload contains only the <key> value from the doGoogleSearch message body, i.e. <part name="key" type="xsd:string" />
    The other doGoogleSearch fields seem to be missing, i.e.
      <part name="q" type="xsd:string" />
      <part name="start" type="xsd:int" />
      <part name="maxResults" type="xsd:int" />
      <part name="filter" type="xsd:boolean" />
      <part name="restrict" type="xsd:string" />
      <part name="safeSearch" type="xsd:boolean" />
      <part name="lr" type="xsd:string" />
      <part name="ie" type="xsd:string" />
      <part name="oe" type="xsd:string" />
    Does anyone know why:
    (1) PI/XI seems to leave out the ResultElement and DirectoryCategory types from the SOAP sender service WSDL file?
    (2) The doGoogleSearch message seen in SXMB_MONI contains only the first <key> field, and not the other fields?
    Thanks for any help with this.

  • I have a problem with downloading Indesign CS 6 part 1 (Mac) , it always stop downloading at 6.8MB !!!

    As the title has stated, I have a problem with downloading Indesign CS 6 part 1(Mac) , it always stop downloading at 6.8MB (out of 1.2GB). I tried restarting my mac, using different browser but it is always the same result... Any help???

    Try it from this site
    Download Adobe CS6 Trials: Direct Links (no Assistant or Manager) | ProDesignTools

  • I have a problem with my iPad, the "other" part of the capacity summary keeps growing like ****

    Dear all: I have a problem with my iPad, the "other" part of the capacity summary keeps growing like ****, every time I sync the iPad gets bigger and bigger. What is this "other" and what do I do to keep it from getting bigger? Thanks to all!

    Marcos,
    I did not try your trick, didn't see your post until after i visited the Apple store.  The tech at the genius bar did not know why my "Other" memory had grown so huge.  It was over 24GB, which only left me with 1 GB free on my 32GB iPad.   I had been loading and unloading video's yesterday thru itunes to try various compression settings.  I did not notice the other categrory growing until I tried to load a 3 GB movie file and it told me I was out of memory.
    I probably loaded and unloaded 30 different times, trying different compression settings.  In the process of doing this, it apparently loaded up the "Other: stuff.  To me it seems like recycle bin in windows, but no one knows how to free it up. 
    So here is what he did and it worked.  He reset the iPad.  Press and hold both the Sleep/Wake button and the Home button for at least ten seconds, until the Apple logo appears.  Then he hooked it up to itunes on his computer.  Fortunately I have everything backed up on my home computer.  When my iPad showed up on iTunes at the store, it showed the 24 MB of "Other" momentarily, then it reduced to about .7 GB giving me 24.5 GB free.  Resetting it seemed to do the trick, but he still could tell me how this is happening and how to prevent it. 
    I think I'll try to call someone at applecare to get an explanation, hopefully.

  • Problem with soap receiver adapter

    Hi All
    I have Idoc sender and soap receiver in my scenario.
    I am calling web service deployed on WAS.
    The web service is getting called but the acknowledgement message in xi contains following system error acknowledgement because of which xi changes the status of message to WAIT and starts retrying.
    <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
    - <!--  Inbound Message
      -->
    - <SAP:Error xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="1">
      <SAP:Category>XIAdapterFramework</SAP:Category>
      <SAP:Code area="MESSAGE">GENERAL</SAP:Code>
      <SAP:P1 />
      <SAP:P2 />
      <SAP:P3 />
      <SAP:P4 />
      <SAP:AdditionalText>com.sap.aii.af.ra.ms.api.MessagingException: java.net.SocketTimeoutException: Read timed out: com.sap.aii.af.ra.ms.api.RecoverableException: java.net.SocketTimeoutException: Read timed out</SAP:AdditionalText>
      <SAP:ApplicationFaultMessage namespace="" />
      <SAP:Stack />
      <SAP:Retry>M</SAP:Retry>
      </SAP:Error>
    Please anybody can help to resolve this problem. This scenario has worked without any error previously.
    Thanks in advance
    Beena

    Hi Bhavesh,
    It is an Async call where method does not return anything.
    I added entries in IDX_NOALE but still it is setting the message status to WAIT and does retry.
    Following is the Audit Log in Runtime workbench :
    Audit Log for Message: 22b3052d-c519-034e-85db-e65d541d6414
    Time Stamp Status Description
    2006-12-13 10:25:23 Error SOAP: error occured: java.net.SocketTimeoutException: Read timed out
    2006-12-13 10:25:23 Error Exception caught by adapter framework: Read timed out
    2006-12-13 10:25:24 Error Delivery of the message to the application using connection AFW failed, due to: Read timed out.
    2006-12-13 10:25:24 Success The asynchronous message was successfully scheduled to be delivered at Wed Dec 13 10:30:24 GMT+05:30 2006.
    2006-12-13 10:25:24 Success The message status set to WAIT.
    2006-12-13 10:30:25 Success Retrying to deliver message to the application. Retry: 1
    2006-12-13 10:30:25 Success The message was successfully retrieved from the receive queue.
    2006-12-13 10:30:25 Success The message status set to DLNG.
    2006-12-13 10:30:25 Success Delivering to channel: INSPWCCT_PVtoSAP_Ack
    2006-12-13 10:30:25 Success SOAP: request message entering the adapter
    2006-12-13 10:35:28 Success SOAP: call failed
    2006-12-13 10:35:28 Success SOAP: sending a delivery error ack ...
    2006-12-13 10:35:28 Success SOAP: sent a delivery error ack
    2006-12-13 10:35:28 Error SOAP: error occured: java.net.SocketTimeoutException: Read timed out
    2006-12-13 10:35:28 Error Exception caught by adapter framework: Read timed out
    2006-12-13 10:35:28 Error Delivery of the message to the application using connection AFW failed, due to: Read timed out.
    2006-12-13 10:35:28 Success The asynchronous message was successfully scheduled to be delivered at Wed Dec 13 10:40:28 GMT+05:30 2006.
    2006-12-13 10:35:28 Success The message status set to WAIT.
    I have tried this scenario earlier. I am sending the same Idoc from R3 which was processed successfully earlier.
    Thanks
    Beena.

  • Problem with SOAP receiver

    Hello,
    Our PI system is 7.4 . We have a lot of interface with related to  proxy to soap.When they are used  very intensively, errors occur in soap receiver .
    Types are error: 
    503 server  not avalibale,
    401 unauthorized ,
    invalid content type for SOAP:TEXT/HTML  such as...
    When system is restarted, mostly it is worked but after while again errors occur and a lot of message is waiting in queue.
    what can we do for it?
    Thanks in advance,
    Nurhan

    Hi Claudia,
    It is dual stack installation. While calling  soap receiver adapter, error occur. In sxmb_moni  display error  as follows:
    After restart, we have new error:
    It is abap proxy to soap scenario. It's synchronous communication.
    Thanks,
    Nurhan

  • SOAP receiver problems

    Hi Folks,
    I am sending data to the webservice using SOAP receiver. In the runtime workbench I can see the message as successfull, but the end user is claiming that , he didn't get the data from XI.
    What could be the possible reason for this?
    Where might the message lost?
    And for one message which is using SOAP receiver as communication channel , In the audit log I can see the steps as below:
    SOAP: request message entering the adapter with user J2EE_GUEST
    SOAP: completed the processing
    SOAP: continuing to response message
    SOAP: sending a delivery ack
    SOAP: sent a delivery ack
    The message was successfully delivered to the application using connection SOAP_http://sap.com/xi/XI/System.
    MP: Leaving module processor
    The message status set to DLVD.
    For other message I can see the log as :
    SOAP: request message entering the adapter with user J2EE_GUEST
    SOAP: completed the processing
    SOAP: continuing to response message
    SOAP: sending a delivery ack ...
    SOAP: sent a delivery ack
    MP: Leaving module processor
    The message was successfully delivered to the application using connection SOAP_http://sap.com/xi/XI/System.
    The message status set to DLVD.
    Both are using same communication channel. still u can see the difference in the steps that are exicuted (check leaving module processer line in both).
    Is it mandatory that the series of steps should be same for all the messages?
    I have 2 queries, please answer both......
    Thanks SPMD

    HI
    As a first test , import the wsdl shared by third party  in soap uI/MS infopath/xml spy , fill in the test data (preferably same which you are trying to post now) and do a test :- doing this you will get to know if there is any problem in the WS iteslf. if you get http 200 ok then posting happened and ask the third party to check if they got any request.
    If you have sync soap then you will be getting the desired response back to soap ui .
    Also check if you need to put soap action also check the content type if its text/xml or app/xml  some WS dont accept App/xml u may need to use message transformation bean in modules tab.
    if there is any connectivity at ntwrk level then please try  if you can trouble shoot using this blog
    /people/varadharajan.krishnasamy/blog/2007/01/09/troubleshooting-soap-message--xi
    Regards
    $rinivas

  • PI  7.0 SOAP receiver don't send the request to the destination web service

    Hello everybody.
    I have a problem with a synchronous scenario.
    RFC -> XI -> SOAP
    The Web service is outside our network.
    It's a communication HTTPS and the certificate is installed.
    The mapping between RFC and the outgoing message is made by XSLT because I had to put data in SOAP:Header.
    When I use the soap enveloppe in XMLSPY from my PC, that works, but when it is used by PI, the request is well generated and the adapter say that that the "call is completed" and the "request entering" but our partner doesn't  receive anything.
    Message souce extract coming from the adapter SOAP :
    <?xml version="1.0" encoding="utf-8" ?>
    <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:m0="http://www.w3.org/2000/09/xmldsig#">
    <SOAP-ENV:Header>
    <m:credentials xmlns:m="http://eu.toyota.com/security/credentials/1.0">
      <username>minivomws.user@TBEL</username>
      <password>tars456</password>
      </m:credentials>
      </SOAP-ENV:Header>
      <SOAP-ENV:Body />
      </SOAP-ENV:Envelope>
    Could it be a problem of firewall or something else like this?
    Is there anybody who can help me?
    Thanks in advance for your answers
    Regards.

    Hi,
    In SOAP communciation channel, you have the parameter as Target URL, just below that you will fine some checkbox as Configure Proxy.
    Select this option and it will ask for HOST and PORT, these details will be available with the contact person of receiver Web Application, just fill up and this is HTTPS so may required related User ID and Password also to be specify. for this select the chek box Configure Proxy User Authetication.
    Hope this will help.
    thanks
    Swarup

  • SOAP Receiver adapter with attachments not working

    Hello,
    I have a simple synchronous scenario like this; ABAP proxy with attachments to SOAP with attachments.
    The SOAP receiver adapter has been configured with the parameters 'Do not Use SOAP envelope' and 'Keep attachments'. We create our own SOAP envelope with custom SOAP headers, so that's the reason for the 'Do not use SOAP envelope' setting.
    When we test the scenario with an attachment then we get a timeout from PI. However, when we test the same scenario without any attachment then no errors occur.
    The external webservice has also been tested with SOAP UI and it works fine.
    Do you have any clues what the problem can be? What are we still missing in the configuration?
    We did try with the adapter modules such as PayloadSwapBean and the Message TransformBean, so far without success...
    Many thanks.
    Roberto

    Hi Stefan,
    The attachments are not really big, around 150KB.
    According to the other party (Oracle Service Bus) no messages with attachments have been received. In fact it seems like those messages never leave the PI server. SOAP requests without attachments are processed successfully.
    Thanks
    Roberto

  • Problems with SOAP Adapter/Interface

    Hi Experts,
    we currently try and experiment with XI 3.0 Stack 09 and the SOAP adapter respectively.
    We started with a simple interface (foo..., see wsdl attachment) that we want to provide by XI.
    All configurations (SLD, Integration Repository, Integration Directory) should have been done accordingly as we suppose, similar to other szenarios we have already implemented.
    When we send a SOAP request based on a generated wsdl to XI we get the exception at the bottom of this text, containing e.g.
    com.sap.aii.messaging.srt.BubbleException: error during conversion [null "null"];
    com.sap.aii.messaging.util.XMLScanException: Parsing an empty source. Root element expected!
    For sending the SOAP message we used XMLSpy.
    Did someone have similar problems or can give us an working WSDL example, or some hint?
    Thanks in advance,
    Klaus Lukas
    foo.wsdl
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:p1="urn://poreceive.xi.pse.siemens.com" targetNamespace="urn://poreceive.xi.pse.siemens.com" name="foo_out_sync">
         <wsdl:types>
              <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="urn://poreceive.xi.pse.siemens.com" targetNamespace="urn://poreceive.xi.pse.siemens.com">
                   <xsd:element name="foo" type="foo_DT"/>
                   <xsd:complexType name="foo_DT">
                        <xsd:annotation>
                             <xsd:appinfo source="http://sap.com/xi/TextID">
                        fe0bb241d2a011d9cd15e9729ee2f568
                        </xsd:appinfo>
                        </xsd:annotation>
                        <xsd:sequence>
                             <xsd:element name="item" type="xsd:string">
                                  <xsd:annotation>
                                       <xsd:appinfo source="http://sap.com/xi/TextID">
                                fe0bb240d2a011d9acede9729ee2f568
                                </xsd:appinfo>
                                  </xsd:annotation>
                             </xsd:element>
                        </xsd:sequence>
                   </xsd:complexType>
              </xsd:schema>
         </wsdl:types>
         <wsdl:message name="foo">
              <wsdl:part name="foo" element="p1:foo"/>
         </wsdl:message>
         <wsdl:portType name="foo_out_sync">
              <wsdl:operation name="foo_out_sync">
                   <wsdl:input message="p1:foo"/>
                   <wsdl:output message="p1:foo"/>
              </wsdl:operation>
         </wsdl:portType>
         <wsdl:binding name="foo_out_syncBinding" type="p1:foo_out_sync">
              <soap:binding xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
              <wsdl:operation name="foo_out_sync">
                   <wsdl:input>
                        <soap:body xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" use="literal"/>
                   </wsdl:input>
                   <wsdl:output>
                        <soap:body xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" use="literal"/>
                   </wsdl:output>
              </wsdl:operation>
         </wsdl:binding>
         <wsdl:service name="foo_out_syncService">
              <wsdl:port name="foo_out_syncPort" binding="p1:foo_out_syncBinding">
                   <soap:address location="http://xxxxxxxx:8000/XISOAPAdapter/MessageServlet?channel=:Foo_SOAP_Service:SOAP_Foo_out&version=3.0&Sender.Service=Foo_SOAP_Service&Interface=urn%3A%2F%2Fporeceive.xi.pse.siemens.com%5Efoo_out_sync" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"/>
              </wsdl:port>
         </wsdl:service>
    </wsdl:definitions>
    soap message incl. error
    <?xml version="1.0"?>
    <!-- see thedocumentation -->
    <SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
    <SOAP:Body>
    <SOAP:Fault>
    <faultcode>SOAP:Server</faultcode>
    <faultstring>error during
    conversion</faultstring>
    <detail>
    <s:SystemError
    xmlns:s="http://sap.com/xi/WebService/xi2.0">
    <context>XIAdapter</context>
    <code>XMLScanException</code>
    <text><![CDATA[
    com.sap.aii.af.mp.module.ModuleException
    at com.sap.aii.af.mp.soap.ejb.XISOAPAdapterBean.process
    (XISOAPAdapterBean.java:697)
    at
    com.sap.aii.af.mp.module.ModuleLocalLocalObjectImpl3.process
    (ModuleLocalLocalObjectImpl3.java:103)
    at com.sap.aii.af.mp.ejb.ModuleProcessorBean.process
    (ModuleProcessorBean.java:221)
    at
    com.sap.aii.af.mp.processor.ModuleProcessorLocalLocalObjectImpl0.process
    (ModuleProcessorLocalLocalObjectImpl0.java:103)
    at com.sap.aii.af.mp.soap.web.MessageServlet.doPost
    (MessageServlet.java:543)
    at javax.servlet.http.HttpServlet.service
    (HttpServlet.java:760)
    at javax.servlet.http.HttpServlet.service
    (HttpServlet.java:853)
    at
    com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet
    (HttpHandlerImpl.java:385)
    at
    com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleReques
    t(HttpHandlerImpl.java:263)
    at
    com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet
    (RequestAnalizer.java:340)
    at
    com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet
    (RequestAnalizer.java:318)
    at
    com.sap.engine.services.httpserver.server.RequestAnalizer.invokeWebConta
    iner(RequestAnalizer.java:821)
    at
    com.sap.engine.services.httpserver.server.RequestAnalizer.handle
    (RequestAnalizer.java:239)
    at com.sap.engine.services.httpserver.server.Client.handle
    (Client.java:92)
    at com.sap.engine.services.httpserver.server.Processor.request
    (Processor.java:147)
    at
    com.sap.engine.core.service630.context.cluster.session.ApplicationSessio
    nMessageListener.process(ApplicationSessionMessageListener.java:37)
    at
    com.sap.engine.core.cluster.impl6.session.UnorderedChannel$MessageRunner
    .run(UnorderedChannel.java:71)
    at com.sap.engine.core.thread.impl3.ActionObject.run
    (ActionObject.java:37)
    at java.security.AccessController.doPrivileged(Native Method)
    at com.sap.engine.core.thread.impl3.SingleThread.execute
    (SingleThread.java:94)
    at com.sap.engine.core.thread.impl3.SingleThread.run
    (SingleThread.java:162)
    Caused by: com.sap.aii.messaging.srt.BubbleException: error during
    conversion [null "null"]; nested exception caused by:
    com.sap.aii.messaging.util.XMLScanException: Parsing an empty source.
    Root element expected!
    at
    com.sap.aii.messaging.srt.xmb.XMBWebServiceExtension.onResponseToWS
    (XMBWebServiceExtension.java:936)
    at
    com.sap.aii.messaging.srt.xmb.XMBWebServiceExtension.invokeOnResponse
    (XMBWebServiceExtension.java:602)
    at com.sap.aii.messaging.srt.ExtensionBubble.onMessage
    (ExtensionBubble.java:58)
    at com.sap.aii.af.mp.soap.ejb.XISOAPAdapterBean.process
    (XISOAPAdapterBean.java:576)
    ... 20 more
    Caused by: com.sap.aii.messaging.util.XMLScanException: Parsing an
    empty source. Root element expected!
    at com.sap.aii.messaging.util.StreamXMLScannerImpl.open
    (StreamXMLScannerImpl.java:104)
    at com.sap.aii.messaging.mo.DefaultItem.setData
    (DefaultItem.java:294)
    at
    com.sap.aii.messaging.srt.xmb.XMBWebServiceExtension.makeItemFromPayload
    (XMBWebServiceExtension.java:972)
    at
    com.sap.aii.messaging.srt.xmb.XMBWebServiceExtension.onResponseToWS
    (XMBWebServiceExtension.java:879)
    ... 23 more
    ]]></text>
    </s:SystemError>
    </detail>
    </SOAP:Fault>
    </SOAP:Body>
    </SOAP:Envelope>

    Hi Klaus
    In your wsdl file the soap address tag (given below)
    <b><soap:address location="http://xxxxxxxx:8000/XISOAPAdapter/MessageServlet?channel=:Foo_SOAP_Service:SOAP_Foo_out&version=3.0&Sender.Service=Foo_SOAP_Service&Interface=urn%3A%2F%2Fporeceive.xi.pse.siemens.com%5Efoo_out_sync" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"/></b>
    is to be edited as
    <b><soap:address location="http://xxxxxxxx:50000//XISOAPAdapter/MessageServlet?channel=:Foo_SOAP_Service:SOAP_Foo_out" /></b>
    because the soap address format should be like :
    <i>http://host:port/XISOAPAdapter/MessageServlet?channel=party:service:channel</i>
    For more information :
    http://help.sap.com/saphelp_nw04/helpdata/en/0d/5ab43b274a960de10000000a114084/frameset.htm
    Hope this will be helpful.
    Regards
    Suraj

  • WLS 7.0 sp2 - Servlet Problems with SOAP messages

              I'm using Weblogic 7.0 SP2 and trying to create a Servlet to receive SOAP wrapped
              XML messages. I'm getting the following error. Is this a problem with WLS7.0sp2's
              support of JAXM? The System.out.println's indicate I have successfully received
              the incoming SOAP request and then successfully formatted the SOAP response, but
              upon returning saving the response it appears to blow up. Does anyone have any
              suggestions?
              I need to do the following in a servlet:
              - receive an incoming SOAP request with an embedded XML message
              - perform some processing
              - return a SOAP response with an embedded XML message
              Should I be using JAXM? Or can I do this same task easily with JAX-RPC?
              <Feb 24, 2004 4:10:42 PM AST> <Error> <HTTP> <101017> <[ServletContext(id=260434
              7,name=isd.war,context-path=)] Root cause of ServletException
              java.lang.Error: NYI
              at weblogic.webservice.core.soap.SOAPMessageImpl.saveRequired(SOAPMessag
              eImpl.java:360)
              at javax.xml.messaging.JAXMServlet.doPost(Unknown Source)
              at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
              at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
              at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run
              (ServletStubImpl.java:1058)
              at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm
              pl.java:401)
              at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm
              pl.java:306)
              at weblogic.servlet.internal.WebAppServletContext$ServletInvocationActio
              n.run(WebAppServletContext.java:5445)
              at weblogic.security.service.SecurityServiceManager.runAs(SecurityServic
              eManager.java:780)
              at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppSe
              rvletContext.java:3105)
              at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestIm
              pl.java:2588)
              at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:213)
              at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:189)
              >
              I've stripped the code down so that all it does is verifies the incoming SOAP/XML
              request and creates a hard-coded response... be gentle... I'm a novice at this
              import javax.xml.soap.*;
              import javax.servlet.*;
              import javax.servlet.http.*;
              // import javax.xml.transform.*;
              import java.util.*;
              import java.io.*;
              public class RegisterServlet extends HttpServlet
              static MessageFactory fac = null;
              static
              try
              fac = MessageFactory.newInstance();
              catch (Exception ex)
              ex.printStackTrace();
              public void init(ServletConfig servletConfig) throws ServletException
              super.init(servletConfig);
              public void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException,
              IOException
              try
              System.out.println("** Note: doPost() Entering req = " + req);
              // Get all the headers from the HTTP request
              MimeHeaders headers = getHeaders(req);
              // Get the body of the HTTP request
              InputStream is = req.getInputStream();
              // Now internalize the contents of a HTTP request
              // and create a SOAPMessage
              SOAPMessage msg = fac.createMessage(headers, is);
              System.out.println("** Note: doPost() Step A");
              SOAPMessage reply = null;
              reply = onMessage(msg);
              System.out.println("** Note: doPost() Step B reply = " + reply);
              if (reply != null)
              * Need to call saveChanges because we're
              * going to use the MimeHeaders to set HTTP
              * response information. These MimeHeaders
              * are generated as part of the save.
              if (reply.saveRequired())
              System.out.println("** Note: doPost() Step C reply.saveRequired()");
              reply.saveChanges();
              resp.setStatus(HttpServletResponse.SC_OK);
              putHeaders(reply.getMimeHeaders(), resp);
              // Write out the message on the response stream
              OutputStream os = resp.getOutputStream();
              System.out.println("** Note: doPost() Step D os = " + os);
              reply.writeTo(os);
              os.flush();
              else
              resp.setStatus(HttpServletResponse.SC_NO_CONTENT);
              catch (Exception ex)
              throw new ServletException("** Error: SAAJ POST failed: " + ex.getMessage());
              static MimeHeaders getHeaders(HttpServletRequest req)
              Enumeration enum = req.getHeaderNames();
              MimeHeaders headers = new MimeHeaders();
              while (enum.hasMoreElements())
              String headerName = (String)enum.nextElement();
              String headerValue = req.getHeader(headerName);
              StringTokenizer values =
              new StringTokenizer(headerValue, ",");
              while (values.hasMoreTokens())
              headers.addHeader(headerName,
              values.nextToken().trim());
              return headers;
              static void putHeaders(MimeHeaders headers, HttpServletResponse res)
              Iterator it = headers.getAllHeaders();
              while (it.hasNext())
              MimeHeader header = (MimeHeader)it.next();
              String[] values = headers.getHeader(header.getName());
              if (values.length == 1)
              res.setHeader(header.getName(),
              header.getValue());
              else
              StringBuffer concat = new StringBuffer();
              int i = 0;
              while (i < values.length)
              if (i != 0)
              concat.append(',');
              concat.append(values[i++]);
              res.setHeader(header.getName(), concat.toString());
              // This is the application code for handling the message.
              public SOAPMessage onMessage(SOAPMessage message)
              SOAPMessage replymsg = null;
              try
              System.out.println("** Note: OnMessage() Entering msg = " + message);
              //Extract the ComputerPart element from request message and add to reply SOAP
              message.
              SOAPEnvelope reqse = message.getSOAPPart().getEnvelope();
              SOAPBody reqsb = reqse.getBody();
              //System.out.println("** Note: OnMessage() Step B");
              System.out.println("** Note: OnMessage () Step A Soap Request Message Body = "
              + reqsb);
              //Create a reply mesage from the msgFactory of JAXMServlet
              System.out.println("** Note: OnMessage () Step B");
              replymsg = fac.createMessage();
              SOAPPart sp = replymsg.getSOAPPart();
              SOAPEnvelope se = sp.getEnvelope();
              SOAPBody sb = se.getBody();
              System.out.println("** Note: OnMessage () Step C Soap Reply Before Message Body
              = " + sb);
              se.getBody().addBodyElement(se.createName("RegisterResponse")).addChildElement(se.createName("ErrorCode")).addTextNode("000");
              System.out.println("** Note: OnMessage () Step D Soap Reply After Message Body
              = " + sb);
              replymsg.saveChanges();
              System.out.println("** Note: OnMessage() Exiting replymsg = " + (replymsg));
              catch (Exception ex)
              ex.printStackTrace();
              return replymsg;
              

    Michael,
    I got the same error on WLS8.1/Win2K professional and apache FOP (old version).
    After digging into the WLS code and FOP(old version). i found the conflict happens
    on
    the "org.xml.sax.parser" system property. In WLS code, they hard coded like the
    following when startup weblogic server:
    System.setProperty("org.xml.sax.parser", "weblogic.xml.jaxp.RegistryParser");
    But the FOP code try to use the "org.xml.sax.parser" system property to find the
    sax parser then conlict happens.
    Here is the response from BEA support :
    "I consulted with our developers regarding the question of whether we can change
    the hard-coded value for the java system property: org.xml.sax.parser by using
    a configuration parameter and I found that unfortunately there is no specific
    setting to change the value. As you had mentioned in your note the org.xml.sax.parser
    system property can be changed programmatically in your application code."
    I solve my problem by using newer apache FOP (it never use the system property:org.xml.sax.parser
    any more) and XML Registy for WLS8.1.
    Good luck.
    David Liu
    Point2 Technologies Inc.
    "p_michael" <[email protected]> wrote:
    >
    Help.
    When we migrated from WLS 6.1 to WLS 7.0 SP2 when encountered a problem
    with XML
    parsing that did not previously exist.
    We get the error "weblogic.xml.jaxp.RegistryParser is not a SAX driver".
    What does this mean? And, what should we do about it.
    p_michael

  • Newline problem with soap

    I'm having these weird problems with newlines. I'm sending \n in a message because I have a multi lined message i want parsed. Axis is receiving the message and throwing exceptions. I printed out the line it's parsing and it's giving this error that it can't parse:
    '2.5
    PID'
    The parser is not supposed to parse past the \n but it seems to be trying to. I've tested this without webservices and it works fine, adding webservices into the equation gives me these errors.

    Additional info: The problem is the same in the entire environment here (PI DEV, QAS and PRD) and on another PI machine.
    So I doubt very much if it's cache related.
    Edit: This is the 'application error':
      <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
    - <!--  XML Validation Inbound Channel Response
      -->
    - <SAP:Error xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="1">
      <SAP:Category>Application</SAP:Category>
      <SAP:Code area="UNKNOWN">APPLICATION_ERROR</SAP:Code>
      <SAP:P1 />
      <SAP:P2 />
      <SAP:P3 />
      <SAP:P4 />
      <SAP:AdditionalText>application fault</SAP:AdditionalText>
      <SAP:ApplicationFaultMessage namespace="http://xml.apache.org/axis/">hostname</SAP:ApplicationFaultMessage>
      <SAP:Stack />
      <SAP:Retry>M</SAP:Retry>
      </SAP:Error>
    Edited by: Frederik-Jan Roose on Dec 7, 2009 11:11 AM

  • Problem with SOAP 1.1 Format

    Hello everyone.
    I am use SAP XI SOAP 1.1 with WS-Security. At the end of the header of the message the tag <wsse:BinarySecurityToken> is repeating twice which causes a problem from the other receiving SOAP adapter (webMethods). Anyone knows how to fix this?
    Sample:
      </ds:KeyInfo>
      </ds:Signature>
      <wsse:BinarySecurityToken xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-
    wss-wssecurity-utility-1.0.xsd" wsu:Id="sap-1" ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3" EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-
    200401-wss-soap-message-security-1.0#Base64Binary">MIIFSjCCBDKgAw
    </wsse:BinarySecurityToken>
      <wsse:BinarySecurityToken xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-
    wss-wssecurity-utility-1.0.xsd" wsu:Id="sap-1" ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-
    200401-wss-x509-token-profile-1.0#X509v3" EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-
    200401-wss-soap-message-security-1.0#Base64Binary">MIIFSjCCBDKgAw
    </wsse:BinarySecurityToken>
      </wsse:Security>
      </SOAP:Header>
    Edited by: Baheej Awamy on Apr 13, 2009 9:09 AM

    Hi Prateek,
    I just receive the same note from SAP Active Global Support,
    I am going to apply this note and hopefully resolve the issue.

Maybe you are looking for

  • GRC10 Role vs Request Approval

    Gurus, we are currently attempting to maintain the approval and rejection setting at the Request (vs the Role, System and Role) level for one of our stages. Irrespective of this setting being maintained at the Request level, when reviewing the reques

  • TABLE TO FIND OUT THE PERSONAL NUMBER DETAILS FOR MAINT ORDER OPERATION

    Dear Friends, While creating the maintenence order,i am assigning the operation, Against the each operation ike to alllocate some people(personal number),through requirments assignment tab in the operation. I want to know in which table and filed, th

  • RFC is not returning parameters

    Hi All, I have written an Java code in my UDF to call the RFC. Basically i am sending some Import parameters to RFC and getting the Export parameters from the RFC. My RFC structure is like this. XX_RFC     IMPORT        a        b     EXPORT        c

  • User Schema

    Hi, select schemaname into schema_id from V$session where audsid = userenv('sessionid'); Iam using the above query in the after logon on database trigger (in the sys schema), but it does not give the right schema name, who ever logins to any schema i

  • Master DataSource

    Hi, Can anyone please help me find out Master DataSource for customer and material. Thanks