Parse a soap envelope

I have a SOAP response envelope that I am trying to parse using extractvalue.
The response is stored in a xmltype field in a table.
Table
create table ws_results
(x xmltype);SOAP Response
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
     <s:Header>
          <ActivityId CorrelationId="12855f8e-d2be-40c7-81d8-fafa3cf9a779" xmlns="http://schemas.microsoft.com/2004/09/ServiceModel/Diagnostics">d24174d3-e095-460a-b9f8-2bae66efe813</ActivityId>
     </s:Header>
     <s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
          <FetchResponse xmlns="urn: WA.Ecy.ADS.FacilitySite.Services">
               <FacilitySiteId>99997167</FacilitySiteId>
          </FetchResponse>
     </s:Body>
</s:Envelope>Here is the SQL that I attempting to use to get the Facility Site ID out
select extractvalue(x,'/FetchResponse/FacilitySiteId') from ws_results;
select extractvalue(x,'/FetchResponse/FacilitySiteId','xmlns="http://microsoft.com/wsdl/types/"')
from ws_resultsThese returns a null.
Seems like this should be pretty straightforward and I am sure that I am missing something small. Any help would be appreciated.
Thanks, Tony

The problem seems to be (at least with me testing) is the xmlns="urn: WA.Ecy.ADS.FacilitySite.Services". Oracle considers it invalid xpath. If it is replaced with "http://www.ms.com/xml", then it seems OK with xpath. You can test this:
declare
     ---v_xmlText          clob ;      ---varchar2(32765);
     v_xmlText          sys.xmltype;
     v_FacID               varchar2(50) := null;
     v_FacilitySiteId     varchar2(50) := null;
     v_FacilitySiteName     varchar2(50) := null;
begin
     v_xmlText := sys.xmlType('
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
     <s:Header>
          <ActivityId CorrelationId="48538673-36c0-4f6d-8c05-94b753d0e3ab"
          xmlns="http://schemas.microsoft.com/2004/09/ServiceModel/Diagnostics">
          b4af9688-a929-4b9f-a187-fb68f3927240
          </ActivityId>
     </s:Header>
     <s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xmlns:xsd="http://www.w3.org/2001/XMLSchema">
          <FacilitySiteResponse xmlns="http://www.ms.com/xml">
               <FacilitySiteEntity>
                    <Id>99997167</Id>
                    <FacilitySiteId>99997167</FacilitySiteId>
                    <FacilitySiteName>My New Test Facility</FacilitySiteName>
                    <FacilitySiteKeySearchName>My New Te</FacilitySiteKeySearchName>
                    <VirtualSiteFlag>78</VirtualSiteFlag>
                    <GeographicLocationId>99997167</GeographicLocationId>
                    <CreatedDate>2008-11-07T07:32:21.07</CreatedDate>
                    <ModifiedByName>taus461</ModifiedByName>
                    <ModifiedDate>2008-11-07T07:44:20.723</ModifiedDate>
                    <CreatedByName>taus461</CreatedByName>
               </FacilitySiteEntity>
               <GeographicLocationEntity>
                    <Id>99997167</Id>
                    <GeographicLocationId>99997167</GeographicLocationId>
                    <AddressLine1>2020 22nd Ave SE</AddressLine1>
                    <CityName>Olympia</CityName>
                    <CongressionalDistrictNumber xsi:nil="true"/>
                    <COORD_XTNT_CD xsi:nil="true"/>
                    <HorizontalDatumCode>3</HorizontalDatumCode>
                    <HorizontalAccuracyLevelCode>13</HorizontalAccuracyLevelCode>
                    <HorizontalCollectionMethodCode>2</HorizontalCollectionMethodCode>
                    <GeographicPositionCode>8</GeographicPositionCode>
                    <LatitudeDecimalNumber xsi:nil="true"/>
                    <LatitudeDegreeNumber xsi:nil="true"/>
                    <LocationVerifiedFlag xsi:nil="true"/>
                    <LatitudeMinutesNumber xsi:nil="true"/>
                    <LatitudeSecondsNumber xsi:nil="true"/>
                    <LongitudeDecimalNumber xsi:nil="true"/>
                    <LongitudeDegreeNumber xsi:nil="true"/>
                    <LongitudeMinutesNumber xsi:nil="true"/>
                    <LongitudeSecondsNumber xsi:nil="true"/>
                    <BaseReferenceCode>SPCS</BaseReferenceCode>
                    <SOURCE_SCALE_CD>99</SOURCE_SCALE_CD>
                    <VerticalMeasureNumber xsi:nil="true"/>
                    <VerticalMeasureUnitCode>FT</VerticalMeasureUnitCode>
                    <VerticalReferenceCode xsi:nil="true"/>
                    <VerticalCollectionMethodCode xsi:nil="true"/>
                    <VerticalDatumCode xsi:nil="true"/>
                    <VerticalAccuracyLevelCode xsi:nil="true"/>
                    <CountyCodeNumber xsi:nil="true"/>
                    <LocationDescription1>This is my test facility decription</LocationDescription1>
                    <EPARegionName xsi:nil="true"/>
                    <GISVerifiedFlag xsi:nil="true"/>
                    <LegislativeDistrictNumber xsi:nil="true"/>
                    <IndianLandFlag>78</IndianLandFlag>
                    <RangeDirectionCode xsi:nil="true"/>
                    <RangeNumber xsi:nil="true"/>
                    <RegionCode/>
                    <SectionNumber xsi:nil="true"/>
                    <StateCode>WA</StateCode>
                    <SPCSXCoordinateNumber xsi:nil="true"/>
                    <SPCSYCoordinateNumber xsi:nil="true"/>
                    <SPCSZoneCode xsi:nil="true"/>
                    <TownshipDirectionCode xsi:nil="true"/>
                    <TownshipNumber xsi:nil="true"/>
                    <UTMXCoordinateNumber xsi:nil="true"/>
                    <UTMYCoordinateNumber xsi:nil="true"/>
                    <UTMZoneCode xsi:nil="true"/>
                    <WRIAIdNumber xsi:nil="true"/>
                    <ZipCode>98501</ZipCode>
                    <PLAIndicatorCode xsi:nil="true"/>
                    <GISReferenceNumber xsi:nil="true"/>
                    <GISCalculatedLatDecimalNumber xsi:nil="true"/>
                    <GISCalculatedLongDecimalNumber xsi:nil="true"/>
                    <ModifiedByName>taus461</ModifiedByName>
                    <ModifiedDate>2008-11-07T07:44:20.74</ModifiedDate>
                    <CreatedDate xsi:nil="true"/>
                    <CreatedByName>taus461</CreatedByName>
                    <FacilitySite>
                         <Id>99997167</Id>
                         <FacilitySiteId>99997167</FacilitySiteId>
                         <FacilitySiteName>My New Test Facility</FacilitySiteName>
                         <FacilitySiteKeySearchName>My New Te</FacilitySiteKeySearchName>
                         <VirtualSiteFlag>78</VirtualSiteFlag>
                         <GeographicLocationId>99997167</GeographicLocationId>
                         <CreatedDate>2008-11-07T07:32:21.07</CreatedDate>
                         <ModifiedByName>taus461</ModifiedByName>
                         <ModifiedDate>2008-11-07T07:44:20.723</ModifiedDate>
                         <CreatedByName>taus461</CreatedByName>
                    </FacilitySite>
               </GeographicLocationEntity>
               <IsOperationSuccess>true</IsOperationSuccess>
          </FacilitySiteResponse>
     </s:Body>
</s:Envelope>');
     select fac.facID, fac.FacilitySiteId, fac.FacilitySiteName
          into v_FacID, v_FacilitySiteId, v_FacilitySiteName
     from
     xmltable
          xmlnamespaces
               default 'http://www.ms.com/xml'     
               ---'http://www.ms.com/xml'
               ---'http://schemas.xmlsoap.org/ws/2004/08/addressing' as "wsa",
               ---'http://www.w3.org/2003/05/soap-envelope' as "soap"
          '//FacilitySiteResponse'
          passing v_xmlText
          columns
          FacID               varchar2(50)     path     '//FacilitySiteEntity/Id',
          FacilitySiteId          varchar2(50)     path     '//FacilitySiteEntity/FacilitySiteId',
          FacilitySiteName     varchar2(50)     path     '//FacilitySiteEntity/FacilitySiteName'
     ) fac;
     dbms_output.put_line('FacID = ' || v_FacID);
     dbms_output.put_line('FacSiteID = ' || v_FacilitySiteId);
     dbms_output.put_line('FacSiteName = ' || v_FacilitySiteName);
                select extractValue(v_xmlText, '//FacilitySiteResponse/FacilitySiteEntity/Id', 'xmlns="http://www.ms.com/xml"')
     into v_FacID from dual;
               dbms_output.put_line('FacID = ' || v_FacID);
end;
/FacID = 99997167
FacSiteID = 99997167
FacSiteName = My New Test Facility
FacID = 99997167
PL/SQL procedure successfully completed.

Similar Messages

  • JAXB 1.3 can't parse W3 SOAP 2003-05 envelope XML schema

    Hello,
    I was trying to use JAXB to parse the MMAP schema from the SMS Forum
    (http://www.smsforum.net/schemas/mmap/v1.0/mmap.xsd). I finally
    tracked it down to XJC choking on the included SOAP envelope schema's
    use of the xml:lang attribute for a tag called reasontext. Here's the
    pared-down test case:
    C:\java\src\baz>%JWSDP_HOME%\jaxb\bin\xjc.bat http://www.w3.org/2003/05/soap-envelope/soap-envelope.xsd
    %JWSDP_HOME%\jaxb\bin\xjc.bat http://www.w3.org/2003/05/soap-envelope/soap-envelope.xsd
    parsing a schema...
    [ERROR] src-resolve: Cannot resolve the name 'xml:lang' to a(n) attribute declaration component.
      line 97 of soap-envelope.xsd
    [ERROR] src-ct.0.1: Complex Type Definition Representation Error for type 'reasontext'.  Element 'attribute' is invalid, misplaced, or occurs too often.
      line 97 of soap-envelope.xsd
    Failed to parse a schema.
    C:\java\src\baz>I believe that the relevant portions of the schemas and namespaces in
    question are:
    http://www.w3.org/2003/05/soap-envelope/soap-envelope.xsd
    <xs:complexType name="reasontext">
    <xs:simpleContent>
    <xs:extension base="xs:string">
    <xs:attribute ref="xml:lang" use="required" />
    </xs:extension>
    </xs:simpleContent>
    </xs:complexType>http://www.w3.org/2001/XMLSchema.xsd
    <xs:complexType name="attribute" mixed="false">
    <xs:complexContent>
    <xs:extension base="xs:annotated">
    <xs:sequence>
    <xs:element name="simpleType" minOccurs="0" type="xs:localSimpleType" />
    </xs:sequence>
    <xs:attributeGroup ref="xs:defRef" />
    <xs:attribute name="type" type="xs:QName" />
    <xs:attribute name="use" use="optional" default="optional">
    <xs:simpleType>
    <xs:restriction base="xs:NMTOKEN">
    <xs:enumeration value="prohibited" />
    <xs:enumeration value="optional" />
    <xs:enumeration value="required" />
    </xs:restriction>
    </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="default" type="xs:string" />
    <xs:attribute name="fixed" type="xs:string" />
    <xs:attribute name="form" type="xs:formChoice" />
    </xs:extension>
    </xs:complexContent>
    </xs:complexType>http://www.w3.org/2001/XMLSchema.xsd
    <xs:attributeGroup name="defRef">
    <xs:annotation>
    <xs:documentation>for element, group and attributeGroup, which both define and reference</xs:documentation>
    </xs:annotation>
    <xs:attribute name="name" type="xs:NCName" />
    <xs:attribute name="ref" type="xs:QName" />
    </xs:attributeGroup>http://www.w3.org/XML/1998/namespace
    The namespace whose name is http://www.w3.org/XML/1998/namespace is
    bound by definition to the prefix xml: according to Namespaces in XML,
    W3C Recommendation 14 Jan 1999. Note that unlike all other XML
    namespaces, both the name and the prefix are specified; i.e., if you
    want XML 1.0 processors to recognize this namespace, you must use the
    reserved prefix xml:.
    xml:lang and xml:space
    As of the last update of this document, the XML 1.0 Specification
    defines two attribute names in this namespace:
    xml:lang
    Designed for identifying the human language used in the scope of the
    element to which it's attached.
    .I'm no XML schema expert, but it looks to me like "name" and "ref"
    are both valid attributes for an <xs:attribute> tag and that the XML
    namespace standard requires XML processors to recognize the xml:lang
    attribute. Hence, this appears to me to be a bug in JAXB.
    A secondary bug is that the original error message left the name of
    the offending included schema blank:
    C:\java\src\foo>d:\java\jwsdp\jwsdp-1.3\jaxb\bin\xjc.bat http://www.smsforum.net/schemas/mmap/v1.0/mmap.xsd
    parsing a schema...
    [ERROR] src-resolve: Cannot resolve the name 'xml:lang' to a(n) attribute declaration component.
      line 97 of
    [ERROR] src-ct.0.1: Complex Type Definition Representation Error for type 'reasontext'.  Element 'attribute' is invalid, misplaced, or occurs too often.
      line 97 of
    Failed to parse a schema.
    C:\java\src\foo>In case it helps with problem diagnosis, I'm running with J2SDK 1.4.2
    and have copied the endorsed jar files into the JRE lib as instructured
    with JAXB:
    C:\java\src\baz>java -version
    java -version
    java version "1.4.2"
    Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2-b28)
    Java HotSpot(TM) Client VM (build 1.4.2-b28, mixed mode)
    C:\java\src\baz>dir %JAVA_HOME%\jre\lib\endorsed
    dir %JAVA_HOME%\jre\lib\endorsed
    Volume in drive D has no label.
    Volume Serial Number is 70AE-6E52
    Directory of D:\java\j2se\j2sdk1.4.2\jre\lib\endorsed
    03/31/2004  09:41 AM    <DIR>          .
    03/31/2004  09:41 AM    <DIR>          ..
    03/29/2004  01:28 PM            56,619 dom.jar
    03/29/2004  01:28 PM            60,963 sax.jar
    03/29/2004  01:28 PM         2,823,241 xalan.jar
    03/29/2004  01:28 PM         2,667,618 xercesImpl.jar
    10/10/2003  06:36 PM         1,379,810 xsltc.jar
                   6 File(s)      6,989,573 bytes
                   2 Dir(s)   7,889,731,584 bytes free
    C:\java\src\baz>I'm quite interested in the resolution of this issue as I'm stopped in
    my tracks on progress here. Help with resolution, whether in JAXB or
    my usage of it, will be much appreciated. I did a search of existing
    issues but didn't notice a duplicate. Thanks in advance.

    I have also come across a similar problem with validating an xml file with an xml:lang attribute. It seems to be common across the schema validation and dtd validation. I get the following error with both schema and dtd validation:
    Validation Error Msg (0): unexpected attribute "xml:lang"
    Validation Error Location (0): FreeFormText
    The test file extract looks like this:
    <FreeFormText xml:lang="EN">Pelle</FreeFormText>
    The schema defines the node as:
    <xs:complexType name="FreeFormText">
              <xs:simpleContent>
                   <xs:extension base="FreeFormTextType">
                        <xs:attribute name="lang" type="xs:language"/>
                   </xs:extension>
              </xs:simpleContent>
    </xs:complexType>
    and the dtd defines the node as:
    <!ELEMENT FreeFormText
         (#PCDATA)>
    <!ATTLIST FreeFormText xml:lang CDATA #IMPLIED >
    This looks like a bug in JAXB to me aswell. Any help on it would be much appreciated as i am also stuck.

  • Parsing SOAP Envelope

    I am new to mobile web services. I need to create a parser but my code didnot work:( Could you please help me?
    * To change this template, choose Tools | Templates
    * and open the template in the editor.
    import java.io.*;
    import javax.microedition.midlet.*;
    import org.ksoap2.SoapEnvelope;
    import org.kxml2.io.KXmlParser;
    import org.xmlpull.v1.XmlPullParserException;
    import java.io.ByteArrayInputStream;
    * @author Welcome
    public class MobileSOAPParsingMidlet extends MIDlet {
    String msg1="<S:Envelope xmlns:S=\"http://schemas.xmlsoap.org/soap/envelope/\"> <S:Header/>" +
    " <S:Body> <ns2:Add xmlns:ns2=\"http://webservice/\"> <x>5</x>" +
    " <y>8</y> </ns2:Add> </S:Body></S:Envelope>";
    String msg2 = " <Envelope Version= \"1\"> <Body> <WebService> <Action>Add</Action> <x>5</x> <y>8</y> </WebService> </Body></Envelope>";
    String msg = "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n" +
    "<soap:Envelope xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\" " +
    " xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" " +
    " xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\">\n" +
    " <getRating xmlns=\"http://tempuri.org\">\n" +
    " </getRating>\n" +
    " </soap:Body>\n" +
    "</soap:Envelope>";
    public void startApp() {
    byte[] xmlByteArray = msg.getBytes();
    ByteArrayInputStream xmlStream = new ByteArrayInputStream( xmlByteArray );
    InputStreamReader xmlReader = new InputStreamReader( xmlStream );
    KXmlParser parser = new KXmlParser();
    try {
    parser.setInput(xmlStream, msg);
    } catch (XmlPullParserException ex) {
    ex.printStackTrace();
    SoapEnvelope soapenvelope=new SoapEnvelope(SoapEnvelope.VER12);
    try {
    soapenvelope.parse(parser);
    } catch (IOException ex) {
    ex.printStackTrace();
    } catch (XmlPullParserException ex) {
    ex.printStackTrace();
    // catch(UnsupportedEncodingException e){
    // System.err.println(e);
    public void pauseApp() {
    public void destroyApp(boolean unconditional) {
    }

    I accidently hit the post before the messag was composed.
    I'm trying to parse an XML soap envelope found in a collection. I can do it in TOAD but get a "ORA-01008: not all variables bound" message in APEX within a PL/SQL anonymous block
    Here is the code snippet:
    declare
    l_xml clob;
    l_pdf                    clob;
    begin
    select xmltype.createxml(cm.clob001)
    into l_xmlval
    from ....
    select l_xmlval.extract('//*[local-name()=''reportBytes]').getclobval()
    into l_pdf
    from dual;
    end;
    It is the presense of the two backslashes that cause the ORA-01008. Does anybody know how to resolve this problem?
    Alex

  • Web service parsing soap envelope problem

    I'm trying to parse an XML document found in a collection. I can do it in TOAD but get a "ORA-01008: not all variables bound" message in APEX.

    I accidently hit the post before the messag was composed.
    I'm trying to parse an XML soap envelope found in a collection. I can do it in TOAD but get a "ORA-01008: not all variables bound" message in APEX within a PL/SQL anonymous block
    Here is the code snippet:
    declare
    l_xml clob;
    l_pdf                    clob;
    begin
    select xmltype.createxml(cm.clob001)
    into l_xmlval
    from ....
    select l_xmlval.extract('//*[local-name()=''reportBytes]').getclobval()
    into l_pdf
    from dual;
    end;
    It is the presense of the two backslashes that cause the ORA-01008. Does anybody know how to resolve this problem?
    Alex

  • Trying to parse a Soap Message

    I'm working on creating webservices that will be consumed by
    Director and working with the client programmer, we've come to
    recognize the problem, but we don't know how to resolve it.
    Problem: the XMLParser doesn't follow href parameters in tags
    that refer to subobjects, which result in a #getProp Ref error.
    I have a web service method that will return a list of names
    and it returns the following XML response:
    &lt;?xml version=&quot;1.0&quot;
    encoding=&quot;UTF-8&quot; ?&gt;
    &lt;soapenv:Envelope xmlns:soapenv=&quot;
    http://schemas.xmlsoap.org/soap/envelope/&quot;
    xmlns:xsd=&quot;
    http://www.w3.org/2001/XMLSchema&quot;
    xmlns:xsi=&quot;
    http://www.w3.org/2001/XMLSchema-instance&quot;&gt;
    &lt;soapenv:Body&gt;
    &lt;getStudentsResponse soapenv:encodingStyle=&quot;
    http://schemas.xmlsoap.org/soap/encoding/&quot;&gt;
    &lt;getStudentsReturn href=&quot;#id0&quot;
    /&gt;
    &lt;/getStudentsResponse&gt;
    &lt;multiRef id=&quot;id0&quot;
    soapenc:root=&quot;0&quot; soapenv:encodingStyle=&quot;
    http://schemas.xmlsoap.org/soap/encoding/&quot;
    soapenc:arrayType=&quot;xsd:anyType[6]&quot;
    xsi:type=&quot;soapenc:Array&quot; xmlns:soapenc=&quot;
    http://schemas.xmlsoap.org/soap/encoding/&quot;&gt;
    &lt;multiRef
    xsi:type=&quot;soapenc:string&quot;&gt;Bob B
    Bobbly&lt;/multiRef&gt;
    &lt;multiRef
    xsi:type=&quot;soapenc:string&quot;&gt;Andy A
    Anderson&lt;/multiRef&gt;
    &lt;multiRef
    xsi:type=&quot;soapenc:string&quot;&gt;Carl C
    Carlson&lt;/multiRef&gt;
    &lt;/multiRef&gt;
    &lt;/soapenv:Body&gt;
    &lt;/soapenv:Envelope&gt;
    When it hits the getStudentsReturn element and tries to refer
    to a child node, and obviously fails.
    The server is Tomcat 5.5, using Axis 1.4 for web services. I
    can post a wsdl if desired.
    The web service is configured for rpc/encoded style.
    What is the way to get out of this particular jam? Neither me
    nor the client programmer have extensive knowledge of how Director
    (or the relevant Xtra) handles SOAP messages or parse them. I've
    stepped through the code and seen the XML parser object render the
    response into an object tree, but it doesn't respect the href's.
    I can provide follow up to any questions or comments about
    this problem.
    Regards,
    Jeff Vandenberg

    Hi Jeff,
    While I don't have much experience with web services, I'm
    about to
    embark on something that involves extensive use of them, so
    your post
    caught my eye.
    If I understand correctly, the href attribute associated with
    the
    getStudentsReturn node is supposed to "automatically" link to
    the
    following multiRef array. Is that correct?
    Assuming it *did* link correctly, how would this manifest
    itself? Is it
    not a matter of you the parser watching for href tags and
    resolving them
    yourself? Why would you not simply provide the multiRef nodes
    as
    children of the getStudentsReturn node? Is there
    documentation somewhere
    for the href attribute and this form of linking?
    Have you tried using the Flash Asset xtra for parsing, and
    does it
    behave "correctly"?

  • Error during parsing of SOAP header

    Hi all,
    I have configured the j-meter to send an http request to inegration engine of PI.
    The request xml that I am sending is as follows:
    <SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
    <SOAP:Header>
    <SOAP:Main xmlns:SAP="http://sap.com/xi/XI/Message/30"
    versionMajor="003" versionMinor="000" SOAP:mustUnderstand="1">
    </SOAP:Main>
    </SOAP:Header>
    <SOAP:Body>
    <ns1:UnitOfMeasure xmlns:ns1="urn:sapappl:mdm:cp:eame:masterdata:uom:620">
    <Record>
    <FinishedMaterialCode>000000000000000233</FinishedMaterialCode>
    <BaseUOM>KG</BaseUOM>
    <AlternateUOM>GEB</AlternateUOM>
    <UnitsInAlternateUOM>100</UnitsInAlternateUOM>
    <UnitsInBaseUOM>2268</UnitsInBaseUOM>
    <Active_Deleted></Active_Deleted>
    </Record>
    </ns1:UnitOfMeasure>
    </SOAP:Body>
    </SOAP:Envelope>
    I am getting the following response from the XI:
    <SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
    <SOAP:Header>
    </SOAP:Header>
    <SOAP:Body>
    <SOAP:Fault xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/"><faultcode>SOAP:Client</faultcode><faultstring>Error during parsing of SOAP header</faultstring><faultactor>http://sap.com/xi/XI/Message/30</faultactor><detail><SAP:Error xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="1"><SAP:Category>XIProtocol</SAP:Category><SAP:Code area="PARSER"/><SAP:P1/><SAP:P2/><SAP:P3/><SAP:P4/><SAP:AdditionalText/><SAP:ApplicationFaultMessage namespace=""/><SAP:Stack>System error in parser
    </SAP:Stack></SAP:Error></detail></SOAP:Fault>
    </SOAP:Body>
    </SOAP:Envelope>
    Any idea as to why PI is not able to parse the request header?
    Thanks,
    Amit

    Hi,
    Better to take WSDL from PI(ID window) and try.

  • SOAP scenario "Do not use SOAP Envelope" check problems

    Hi Gurus!
    I'm again here.
    I've an scenario with SOAP Receiver, the WS do I need consume, looks like:
    POST /SumTotalws1/services/Authentication.asmx HTTP/1.1
    Host: xxx.xxx.xxx.xxx
    Content-Type: text/xml; charset=utf-8
    Content-Length: length
    SOAPAction: "http://www.sumtotalsystems.com/sumtotal7/sumtotalws/Authentication/Login"
    <?xml version="1.0" encoding="utf-8"?>
    <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
      <soap:Body>
        <Login xmlns="http://www.sumtotalsystems.com/sumtotal7/sumtotalws/Authentication/">
          <credentials>
            <Username>string</Username>
            <Passcode>string</Passcode>
            <AuthenticationType>NotSpecified or Anonymous or NTAuthentication or Passport or LDAP</AuthenticationType>
            <AccountType>NotSpecified or WebService or WebUI</AccountType>
          </credentials>
        </Login>
      </soap:Body>
    </soap:Envelope>
    but the response looks like:
    HTTP/1.1 200 OK
    Content-Type: text/xml; charset=utf-8
    Content-Length: length
    <?xml version="1.0" encoding="utf-8"?>
    <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
      <soap:Header>
        <UserToken xmlns="http://www.sumtotalsystems.com/sumtotal7/sumtotalws/">
          <Value>string</Value>
        </UserToken>
      </soap:Header>
      <soap:Body>
        <LoginResponse xmlns="http://www.sumtotalsystems.com/sumtotal7/sumtotalws/Authentication/" />
      </soap:Body>
    </soap:Envelope>
    when I create my communication channel with "Do not Use SOAP Envelope" uncheck it, all run ok, but I only get in response message "<LoginResponse>" and I need <UserToken>
    When I check it "Do not use SOAP Envelope" and I use XSLT mapping to add SOAP Env to request message,  I get response message empty.
    I tried the web Service with the message that I obtained from de XSLT mapping in the program SOAPUI. I get ok response with the <UserToken> value.
    some idea to solve this problem??
    Thanks in advance.
    Edited by: KrlosRios on Sep 30, 2011 8:07 PM

    Hi, thanks for your answer.
    Can I use AXIS to execute any WS?
    The WS that I tried execute looks like this:
    POST /xxxx/services/Authentication.asmx HTTP/1.1
    Host: xxx.240.106.39
    Content-Type: text/xml; charset=utf-8
    Content-Length: length
    SOAPAction: "http://xxx/Authentication/Login"
    <?xml version="1.0" encoding="utf-8"?>
    <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
      <soap:Body>
        <Login xmlns="http://xxxxAuthentication/">
          <credentials>
            <Username>string</Username>
            <Passcode>string</Passcode>
            <AuthenticationType>NotSpecified or Anonymous or NTAuthentication or Passport or LDAP</AuthenticationType>
            <AccountType>NotSpecified or WebService or WebUI</AccountType>
          </credentials>
        </Login>
      </soap:Body>
    </soap:Envelope>
    and for the response:
    HTTP/1.1 200 OK
    Content-Type: text/xml; charset=utf-8
    Content-Length: length
    <?xml version="1.0" encoding="utf-8"?>
    <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
      <soap:Header>
        <UserToken xmlns="http://www.sumtotalsystems.com/sumtotal7/sumtotalws/">
          <Value>string</Value>
        </UserToken>
      </soap:Header>
      <soap:Body>
        <LoginResponse xmlns="http://www.sumtotalsystems.com/sumtotal7/sumtotalws/Authentication/"></LoginResponse>
      </soap:Body>
    </soap:Envelope>
    also I found in Trace node in SXI_MONITOR, jus before execute response mapping :
    <Trace level="1" type="B" name="PLSRV_MAPPING_RESPONSE"></Trace><!-- ************************************ -->
    <Trace level="1" type="Timestamp">2011-11-01T19:33:34Z UTC-6 Start of pipeline service processing PLSRVID= PLSRV_MAPPING_RESPONSE</Trace>
    <Trace level="1" type="B" name="CL_XMS_MAIN-CALL_PLSRV">
    <Trace level="3" type="T">Calling pipeline service: PLSRV_MAPPING_RESPONSE</Trace>
    <Trace level="3" type="T">Reading Pipeline-Service specification... </Trace>
    <Trace level="3" type="T">PLSRVTYPE  = </Trace>
    <Trace level="3" type="T">ADRESSMOD  = LOCAL</Trace>
    <Trace level="3" type="T">P_CLASS    = CL_MAPPING_XMS_PLSRV3</Trace>
    <Trace level="3" type="T">P_IFNAME   = IF_XMS_PLSRV</Trace>
    <Trace level="3" type="T">P_METHOD   = ENTER_PLSRV</Trace>
    <Trace level="3" type="T"> </Trace>
    <Trace level="1" type="B" name="CL_XMS_MAIN-CALL_PLSRV_LOCAL"></Trace><!-- ************************************ -->
    <Trace level="1" type="B" name="CL_MAPPING_XMS_PLSRV3-ENTER_PLSRV"></Trace><!-- ************************************ -->
    <Trace level="2" type="T">......attachment XI_Context not found </Trace>
    <Trace level="3" type="T">Das Mapping wurde bereits in der Interface-Ermittlung bestimmt. </Trace>
    <Trace level="3" type="T">Objekt-Id des Interface-Mappings 8594D8C2E6DA3C008F45B112FFCC86B8 </Trace>
    <Trace level="3" type="T">Versions-Id des Interface-Mappings C3BB8FB0A1D511E0A688E9FCB9F06E16 </Trace>
    <Trace level="1" type="T">Interface-Mapping http://xxxxx.net/pi/lms/Authentication OM_LMS_Authentication </Trace>
    <Trace level="3" type="T">Mapping-Schritte 1  XSLT Response_LMS_Auth5 </Trace>
    <Trace level="3" type="T">MTOM-Attachments werden nicht in die Payload überführt. </Trace>
    <Trace level="1" type="T">Payload is empty. </Trace>
    <Trace level="3" type="T">Dynamische Konfiguration ist leer. </Trace>
    <Trace level="2" type="T">Modus 0  </Trace>
    <Trace level="2" type="T">Call XSLT processor with stylsheet Response_LMS_Auth5.xsl. </Trace>
    <Trace level="3" type="T">Method fatalError called, terminate transformation, because of
    Thrown:
    javax.xml.transform.TransformerException: java.io.IOException: Parsing an empty source. Root element expected!
         at com.sap.engine.lib.jaxp.TransformerImpl.transform(TransformerImpl.java:250)
    Say Payload is empty.
    and in left directory tree, not exist "payload" node, only existe SOAP Body and in "Manifest" node looks like this:
    <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
    <!-- XML Validation Outbound Channel Response -->
    <SAP:Manifest wsu:Id="wsuid-manifest-5CABE13F5C59AB7FE10000000A1551F7" xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:wsu="http://www.docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
    <SAP:Payload xlink:href="cid:att-60c3078b066911e1bc1500000093b25a @sap.com">
    <SAP:Name>MainAttachment</SAP:Name><
    SAP:Description>Main document</SAP:Description>
    <SAP:Type>Application</SAP:Type></SAP:Payload>
    </SAP:Manifest>
    Thanks for your help.

  • HTTP response code 500 : Error during parsing of SOAP header

    Hi Experts,
    I have a MAIL to IDOC scenario.  An external third party emails invoices to our inbox - which we pick up and process the attachment.  All is well when I test the scenario internally, but when the third party emails it fails with (see ERROR MESSAGE below).
    When I look at the SOAP header of the failed message I see the values from the dump in this field:
      <sap:Record namespace="http://sap.com/xi/XI/System/Mail" name="SHeaderTHREAD-INDEX">AcarCeJmJKHuV6wZSxm2UMoUeAjS1gALPExABtze/PACiUJDcAGS0DCwAmOOELAJlOzP0AFiOo8gCK1pEZAF500SsAYW46lgBgX2bGALyieMQAXw2oKgBYXf0WAGeueD0AAAHnhwBamTSaAGIUE0kAYZSYTQBgY5OTADunN0gAE3t/sQAWScBXADTQvvEAD4yNhQATdkKiAFr7DBMAGIXTZQAP2xJFABZ0YfoAGHYAuAAKlaeaACJ9xtUAEjcvQAAV4L06ABZuwsAAK/f9vgAAF/GSAAAYmRYARIKwtQAV5R9SABMo5bsAGQQyvAAVqsjyABOh9uMAFXTa2QAWEjsfABaEvp4AFaL1NQAV5MnUABXiVbIAGc7LsQAYVN9SABLfYQIAEwF3nQAWSL2lABn5ZgIAEf/k8gAWeVgrAAJaSZIAAElM4gATZR0GA=</sap:Record>
    Can anyone tell me what SHeaderTHREAD-INDEX does?  Or what my problem is  (Our email is Outlook)
    ERROR MESSAGE.........
    SOAPFault received from Integration Server. ErrorCode/Category: XIProtocol/WRONG_VALUE; Params: SOAP:Envelope(1)SOAP:Header(1)sap:DynamicConfiguration(3)sap:Record(14), AcarCeJmJKHuV6wZSxm2UMoUeAjS1gALPExABtze/PACiUJDcAGS0DCwAmOOELAJlOzP0AFiOo8gCK1pEZAF500SsAYW46lgBgX2bGALyieMQAXw2oKgBYXf0WAGeueD0AAAHnhwBamTSaAGIUE0kAYZSYTQBgY5OTADunN0gAE3t/sQAWScBXADTQvvEAD4yNhQATdkKiAFr7DBMAGIXTZQAP2xJFABZ0YfoAGHYAuAAKlaeaACJ9xtUAEjcvQAAV4L06ABZuwsAAK/f9vgAAF/GSAAAYmRYARIKwtQAV5R9SABMo5bsAGQQyvAAVqsjyABOh9uMAFXTa2QAWEjsfABaEvp4AFaL1NQAV5MnUABXiVbIAGc7LsQAYVN9SABLfYQIAEwF3nQAWSL2lABn5ZgIAEf/k8gAWeVgrAAJaSZIAAElM4gATZR0GA=協彎䅍䔾ਉ़䥎噏䥃䕟乏㸸㌱ㄵㄹ㰯䥎噏䥃䕟乏㸊उ㱁䵏啎呟䕘䍌彖䅔㸷⸵〼⽁䵏啎呟䕘䍌彖䅔㸊उ㱃啒剅乃失㹅啒㰯䍕剒䕎䍙ㄾਉ़䅍何乔彖䅔㸱⸴㜼⽁ꯃ䅢坡汫, ST: ST_XM; AdditionalText: An error occurred when deserializing in the simple transformation program ST_XMS_MSGHDR30_DYNAMIC; ApplicationFaultMessage:  ; ErrorStack: XML tag SOAP:Envelope(1)SOAP:Header(1)sap:DynamicConfiguration(3)sap:Record(14) (or one of the attributes) has the incorrect value AcarCeJmJKHuV6wZSxm2UMoUeAjS1gALPExABtze/PACiUJDcAGS0DCwAmOOELAJlOzP0AFiOo8gCK1pEZAF500SsAYW46lgBgX2bGALyieMQAXw2oKgBYXf0WAGeueD0AAAHnhwBamTSaAGIUE0kAYZSYTQBgY5OTADunN0gAE3t/sQAWScBXADTQvvEAD4yNhQATdkKiAFr7DBMAGIXTZQAP2xJFABZ0YfoAGHYAuAAKlaeaACJ9xtUAEjcvQ An error occurred when deserializing in the simple transformation program ST_XMS_MSGHDR30_DYNAMIC Data loss occurred when converting AcarCeJmJKHuV6wZSxm2UMoUeAjS1gALPExABtze/PACiUJDcAGS0DCwAmOOELAJlOzP0AFiOo8gCK1p
    Transmitting the message to endpoint http://sdcxp1-ci.na.fmo.com:8000/sap/xi/engine?type=entry using connection AFW failed, due to: com.sap.aii.af.ra.ms.api.RecoverableException: Received HTTP response code 500 : Error during parsing of SOAP header.

    We work with Microsoft Outlook, but I'm sure this could work with any email system.
    This error only came from external emails - what we did in the end is to get the third party to email a particular email (email1) in our company.  This is set up as a regular email account.  On this email put a forward rule to email2 for a particular sender/subject.  email2 is set up as POP3 so that XD1 can poll it - we also block any emails except from email1.
    Doing this accomplishes a couple of things:
    1)  We get around the error because XI polls email2 (which has adapter settings of IMAP4 so we can see MAIL adapter attributes ie. sender, subject etc...When we originally had as POP3 we were not able to see these - but setting as IMAP4 causes the error for external emailers)
    2) We have a SPAM filter - the XI email is clean from SPAM and the adapter will not have errors, as it only receives valid emails to process
    3) We have a central email (email1) which is used to archive all XI emails - we use this for all email scenarios (as we also save to folder and forward in the rule)
    Hope this helps your situation.

  • Bug in EWS Java API 1.2: Does not support namespace prefix "s" as in "s:Envelope".. Expects "soap:Envelope"

    It can NOT parse ....
    <?xml version="1.0" encoding="utf-8"?><s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"><s:Header><h:ServerVersionInfo MajorVersion="14" MinorVersion="2" MajorBuildNumber="309
    " MinorBuildNumber="3" Version="Exchange2010_SP2" xmlns:h="http://schemas.microsoft.com/exchange/services/2006/types" xmlns="http://schemas.microsoft.com/exchange/services/2006/types" xmlns
    :xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"/></s:Header><s:Body><m:GetFolderResponse xmlns:m="http://schemas.microsoft.com/exchange/service
    s/2006/messages" xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types"><m:ResponseMessages><m:GetFolderResponseMessage ResponseClass="Success"><m:ResponseCode>NoError</m:Respo
    nseCode><m:Folders><t:CalendarFolder><t:FolderId Id="AAMkADExNjY4ZWRmLWIwN2YtNDAxMS05ZjEzLTg3YTRiMjQ0ZGY3ZQAuAAAAAADU0n/e4OgzQYvxnEFT1sxPAQA1LVqe3bVEQ6g4HVLTxYapAFiIzwa6AAA=" ChangeKey="AgA
    AABYAAACUAPkRiik5TYV1B0n4GmWXAAAAAj0P"/><t:ParentFolderId Id="AAMkADExNjY4ZWRmLWIwN2YtNDAxMS05ZjEzLTg3YTRiMjQ0ZGY3ZQAuAAAAAADU0n/e4OgzQYvxnEFT1sxPAQA1LVqe3bVEQ6g4HVLTxYapAFiI0lHWAAA=" Chang
    eKey="AQAAAA=="/><t:FolderClass>IPF.Appointment</t:FolderClass><t:DisplayName>Calendar</t:DisplayName><t:TotalCount>2</t:TotalCount><t:ChildFolderCount>0</t:ChildFolderCount><t:EffectiveRig
    hts><t:CreateAssociated>true</t:CreateAssociated><t:CreateContents>true</t:CreateContents><t:CreateHierarchy>true</t:CreateHierarchy><t:Delete>true</t:Delete><t:Modify>true</t:Modify><t:Rea
    d>true</t:Read><t:ViewPrivateItems>true</t:ViewPrivateItems></t:EffectiveRights><t:PermissionSet><t:CalendarPermissions><t:CalendarPermission><t:UserId><t:DistinguishedUser>Default</t:Disti
    nguishedUser></t:UserId><t:CanCreateItems>false</t:CanCreateItems><t:CanCreateSubFolders>false</t:CanCreateSubFolders><t:IsFolderOwner>false</t:IsFolderOwner><t:IsFolderVisible>false</t:IsF
    olderVisible><t:IsFolderContact>false</t:IsFolderContact><t:EditItems>None</t:EditItems><t:DeleteItems>None</t:DeleteItems><t:ReadItems>TimeOnly</t:ReadItems><t:CalendarPermissionLevel>Free
    BusyTimeOnly</t:CalendarPermissionLevel></t:CalendarPermission><t:CalendarPermission><t:UserId><t:DistinguishedUser>Anonymous</t:DistinguishedUser></t:UserId><t:CanCreateItems>false</t:CanC
    reateItems><t:CanCreateSubFolders>false</t:CanCreateSubFolders><t:IsFolderOwner>false</t:IsFolderOwner><t:IsFolderVisible>false</t:IsFolderVisible><t:IsFolderContact>false</t:IsFolderContac
    t><t:EditItems>None</t:EditItems><t:DeleteItems>None</t:DeleteItems><t:ReadItems>None</t:ReadItems><t:CalendarPermissionLevel>None</t:CalendarPermissionLevel></t:CalendarPermission></t:Cale
    ndarPermissions></t:PermissionSet></t:CalendarFolder></m:Folders></m:GetFolderResponseMessage></m:ResponseMessages></m:GetFolderResponse></s:Body></s:Envelope>
    microsoft.exchange.webservices.data.ServiceRequestException: The request failed. An element node 'soap:Envelope' of the type START_ELEMENT was expected, but node '{http://schemas.xmlsoap.or
    g/soap/envelope/}Envelope' of type START_ELEMENT was found.
            at microsoft.exchange.webservices.data.SimpleServiceRequestBase.internalExecute(SimpleServiceRequestBase.java:51)
            at microsoft.exchange.webservices.data.MultiResponseServiceRequest.execute(MultiResponseServiceRequest.java:142)
            at microsoft.exchange.webservices.data.ExchangeService.bindToFolder(ExchangeService.java:346)
            at microsoft.exchange.webservices.data.ExchangeService.bindToFolder(ExchangeService.java:370)
            at microsoft.exchange.webservices.data.Folder.bind(Folder.java:50)
            at microsoft.exchange.webservices.data.Folder.bind(Folder.java:69)
            at com.tsg.ews.GetItemWorker.run(GetItemWorker.java:252)
            at java.lang.Thread.run(Thread.java:662)
    Caused by: microsoft.exchange.webservices.data.ServiceXmlDeserializationException: An element node 'soap:Envelope' of the type START_ELEMENT was expected, but node '{http://schemas.xmlsoap.
    org/soap/envelope/}Envelope' of type START_ELEMENT was found.
            at microsoft.exchange.webservices.data.EwsXmlReader.internalReadElement(EwsXmlReader.java:114)
            at microsoft.exchange.webservices.data.EwsXmlReader.readStartElement(EwsXmlReader.java:618)
            at microsoft.exchange.webservices.data.ServiceRequestBase.readResponse(ServiceRequestBase.java:450)
            at microsoft.exchange.webservices.data.SimpleServiceRequestBase.readResponse(SimpleServiceRequestBase.java:101)
            at microsoft.exchange.webservices.data.SimpleServiceRequestBase.internalExecute(SimpleServiceRequestBase.java:38)

    After these change still I am getting this kind of Error:
    microsoft.exchange.webservices.data.ServiceRequestException
        at microsoft.exchange.webservices.data.SimpleServiceRequestBase.internalExecute(SimpleServiceRequestBase.java:63)
        at microsoft.exchange.webservices.data.MultiResponseServiceRequest.execute(MultiResponseServiceRequest.java:142)
        at microsoft.exchange.webservices.data.ExchangeService.internalFindFolders(ExchangeService.java:202)
        at microsoft.exchange.webservices.data.ExchangeService.findFolders(ExchangeService.java:257)
        at ci.cryoserver.ews.EWSUtils.testEWSWebService(Unknown Source)
        at org.apache.jsp.save_005fimap_005fmailbox_005freader_005fuserinfo_jsp._jspService(save_005fimap_005fmailbox_005freader_005fuserinfo_jsp.java:453)
        at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
        at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
        at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
        at ci.cryoserver.frontend.filter.CompanyTagFilter.doFilter(CompanyTagFilter.java:69)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
        at ci.cryoserver.ntlm.CryoHttpSecurityFilter.doFilter(CryoHttpSecurityFilter.java:105)
        at ci.cryoserver.ntlm.SSOFilter.doFilter(SSOFilter.java:66)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
        at ci.cryoserver.ntlm.NTLMPostFilter.doFilter(NTLMPostFilter.java:39)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
        at ci.cryoserver.frontend.filter.CharsetFilter.doFilter(CharsetFilter.java:152)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
        at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
        at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1023)
        at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
        at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
        at java.lang.Thread.run(Thread.java:662)
    Caused by: microsoft.exchange.webservices.data.ServiceXmlDeserializationException: An element node 'soap:Header' of the type START_ELEMENT was expected, but node '{http://schemas.xmlsoap.org/soap/envelope/}Body' of type START_ELEMENT was found.
        at microsoft.exchange.webservices.data.EwsXmlReader.internalReadElement(EwsXmlReader.java:121)
        at microsoft.exchange.webservices.data.EwsXmlReader.readStartElement(EwsXmlReader.java:625)
        at microsoft.exchange.webservices.data.ServiceRequestBase.readSoapHeader(ServiceRequestBase.java:565)
        at microsoft.exchange.webservices.data.ServiceRequestBase.readResponse(ServiceRequestBase.java:525)
        at microsoft.exchange.webservices.data.SimpleServiceRequestBase.readResponse(SimpleServiceRequestBase.java:171)
        at microsoft.exchange.webservices.data.SimpleServiceRequestBase.internalExecute(SimpleServiceRequestBase.java:49)
        ... 40 more
    This Account is working perfectly with autodiscovery mode. any fix for this ?

  • '/soap:Envelope ' in extract throws invalid token error

    I'm receiving xml via webservice/soap and placing in an XMLTYPE table. Upon trying to execute a test query:
    SELECT
    EXTRACTVALUE(VALUE(d),'Destinations/CountryID') AS ID
    FROM X_TEST p,
    TABLE (xmlsequence(EXTRACT(p.object_value,'/soap:Envelope/soap:Body/GetUserDestinationResponse/GetUserDestinationResult/DestinationResults/DestinationsList//Destinations'))) d
    I get an error similar to: (note path here in error is diff than above extract statement)
    ORA-31011: XML parsing failed
    ORA-19202: Error occurred in XML processing
    LPX-00601: Invalid token in: 'soap:Envelope/soap:Body/GetUserDestinationResponse/GetUserDestinationResult/DestinationResults/DestinationsList/Destinations/DestinationList/Destination//Provider'
    Without the soap:Envelope/soap:Body there is no error. Is there a problem using the ':' here?
    Here's a snippet of the stored xml:
    <?xml version="1.0" encoding="utf-8"?>
    <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <soap:Body>
    <GetUserDestinationsResponse xmlns="http://xxx.xxx.xxx.xx/somesite_ws/">
    <GetUserDestinationsResult>
    <DestinationResults>
    <DestinationsList>
    <Destinations>
    <CountryID>101</CountryID>
    <CountryDescription>Indonesia</CountryDescription>
    </Destinations>
    </DestinationList>
    </DestinationResults>
    </GetUserDestinationsResult>
    </GetUserDestinationsResponse>
    </soap:Body>
    </soap:Envelope>

    Thanks,
    that set me in the right direction - I had tried the third parm before but must not have been just right being that there are multiple namespaces given. Appears I have to always use the namespace parm to accurately obtain the data. To conclude - this is what I ended up with to get this returning data properly:
    SELECT
    EXTRACTVALUE(VALUE(d),'/Destination/DestinationId', 'xmlns="http://xxx.xxx.xxx.xx/some_ws/"') AS ID,
    Get_Point(EXTRACTVALUE(VALUE(d),'/Destination/Longitude', 'xmlns="http://xxx.xxx.xxx.xx/some_ws/"'),
    EXTRACTVALUE(VALUE(d),'/Destination/Latitude', 'xmlns="http://xxx.xxx.xxx.xx/some_ws/"')) AS geom,
    EXTRACTVALUE(VALUE(p),'/Provider/ProviderName', 'xmlns="http://xxx.xxx.xxx.xx/some_ws/"') AS provider_name,
    EXTRACTVALUE(VALUE(p),'/Provider/ProviderSpecific/HospitalInformation/whoAvainFlu', 'xmlns="http://xxx.xxx.xxx.xx/some_ws/"') AS avaianflu,
    VALUE(p) AS xmlb
    FROM X_MEDAIRE xml
    ,TABLE (xmlsequence(EXTRACT(xml.object_value,
    '/soap:Envelope/soap:Body/*', 'xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"'
    ))) e
    ,TABLE (xmlsequence(EXTRACT(VALUE(e),
    '/long/path/after/soap', 'xmlns="http://xxx.xxx.xxx.xx/some_ws/"' ))) d
    ,TABLE (xmlsequence(EXTRACT(VALUE(d),
    '/Destination/ProviderList/Provider', 'xmlns="http://xxx.xxx.xxx.xxx/some_ws/"' ))) p
    WHERE
    EXTRACTVALUE(VALUE(p),'/Provider/ProviderType', 'xmlns="http://xxx.xxx.xxx.xxx/some_ws/"') = 'Hospital'

  • SOAP envelope XML body extraction

    hello , I'm new in the 'XML-world' and also new on this forum but i have a question.
    My function :
    create or replace
    FUNCTION DHL_SOAP_RESPONSE_XMLTYPE RETURN XMLType AS
    SOAP_RESPONSE constant varchar2(32767) :=
    '<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <SOAP-ENV:Header/>
    <SOAP-ENV:Body>
    <rateresp:RateResponse xmlns:rateresp="http://scxgxtt.phx-dc.dhl.com/euExpressRateBook/RateMsgResponse">
    <Provider code="DHL">
    <Notification code="0">
    <Message/>
    </Notification>
    <Service type="C">
    <TotalNet>
    <Currency>EUR</Currency>
    <Amount>17.28</Amount>
    </TotalNet>
    <Charges>
    <Currency>EUR</Currency>
    <Charge>
    <ChargeType>MEDICAL EXPRESS</ChargeType>
    <ChargeAmount>14.77</ChargeAmount>
    </Charge>
    <Charge>
    <ChargeType>FUEL SURCHARGE</ChargeType>
    <ChargeAmount>2.51</ChargeAmount>
    </Charge>
    </Charges>
    <DeliveryTime>2013-02-06T12:00:00</DeliveryTime>
    <CutoffTime>2013-02-05T20:30:00</CutoffTime>
    <NextBusinessDayInd>N</NextBusinessDayInd>
    </Service>
    <Service type="T">
    <TotalNet>
    <Currency>EUR</Currency>
    <Amount>17.28</Amount>
    </TotalNet>
    <Charges>
    <Currency>EUR</Currency>
    <Charge>
    <ChargeType>EXPRESS 12:00</ChargeType>
    <ChargeAmount>14.77</ChargeAmount>
    </Charge>
    <Charge>
    <ChargeType>FUEL SURCHARGE</ChargeType>
    <ChargeAmount>2.51</ChargeAmount>
    </Charge>
    </Charges>
    <DeliveryTime>2013-02-06T12:00:00</DeliveryTime>
    <CutoffTime>2013-02-05T20:30:00</CutoffTime>
    <NextBusinessDayInd>N</NextBusinessDayInd>
    </Service>
    <Service type="G">
    <TotalNet>
    <Currency/>
    <Amount>0.00</Amount>
    </TotalNet>
    <DeliveryTime>2013-02-06T23:59:00</DeliveryTime>
    <CutoffTime>2013-02-05T20:30:00</CutoffTime>
    <NextBusinessDayInd>N</NextBusinessDayInd>
    </Service>
    <Service type="N">
    <TotalNet>
    <Currency>EUR</Currency>
    <Amount>13.69</Amount>
    </TotalNet>
    <Charges>
    <Currency>EUR</Currency>
    <Charge>
    <ChargeType>DOMESTIC EXPRESS</ChargeType>
    <ChargeAmount>11.70</ChargeAmount>
    </Charge>
    <Charge>
    <ChargeType>FUEL SURCHARGE</ChargeType>
    <ChargeAmount>1.99</ChargeAmount>
    </Charge>
    </Charges>
    <DeliveryTime>2013-02-06T23:59:00</DeliveryTime>
    <CutoffTime>2013-02-05T20:30:00</CutoffTime>
    <NextBusinessDayInd>N</NextBusinessDayInd>
    </Service>
    <Service type="9">
    <TotalNet>
    <Currency/>
    <Amount>0.00</Amount>
    </TotalNet>
    <DeliveryTime>2013-02-07T23:59:00</DeliveryTime>
    <CutoffTime>2013-02-05T16:30:00</CutoffTime>
    <NextBusinessDayInd>N</NextBusinessDayInd>
    </Service>
    </Provider>
    </rateresp:RateResponse>
    </SOAP-ENV:Body>
    </SOAP-ENV:Envelope>
    BEGIN
    RETURN XMLType(SOAP_RESPONSE);
    END;
    Now what I want is extract the body of the respons with a select .
    Can someone help me because I don't understand this ?
    I work with the Oracle Database XE 11g.
    SQL developer.
    Thanks already

    Welcome to the forums.
    As a tip for future posts [url https://forums.oracle.com/forums/thread.jspa?threadID=2174552#9360002]2. How do I ask a question on the forums?
    That said, a basic example that pulls the contents of the body out is
    declare
      l_ws_rsp    XMLTYPE;
      l_body_rsp  XMLTYPE;
    begin
      -- Retrieving the SOAP message
      l_ws_rsp := DHL_SOAP_RESPONSE_XMLTYPE;
      -- Extracting out the body
      SELECT xt.body_xml
        INTO l_body_rsp
        FROM XMLTable(XMLNamespaces('http://schemas.xmlsoap.org/soap/envelope/' AS "SOAP-ENV"),
                      '/SOAP-ENV:Envelope/SOAP-ENV:Body/*'
                      PASSING l_ws_rsp
                      COLUMNS
                      body_xml   XMLTYPE PATH '.') xt;
       dbms_output.put_line(l_body_rsp.getClobVal());
    end;If you Google
    XMLTable soap site:forums.oracle.com
    you can find plenty of examples on these forums regarding how to parse a web service response.
    The bigger question is, what are you going to do with the data in the response. As the example above alludes too, you can actually parse the entire WS response with one SQL statement and return the results as one or more rows. Will you be performing PL/SQL logic on the returned results or will you simply be INSERTing them into the database for something else to use?

  • Problem in mapping while using Do not Use SOAP Envelope

    Hi All,
    This is wrt my thread 'Removing and adding SOAP Envelope'
    I am currently working on SOAP-XI-Proxy Scenario.
    For some un avoiadable reason, I had to use the option 'DO not use SOAP Envelope' .So the SOAP Envelope came withen the payload and in the pipeline, I can see the payload prefixed by '<?xml version="1.0" ?>' .
    Now my payload looks like
    <?xml version="1.0" ?> ( no more the encoding="utf-8" notation is there)
      <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
       xmlns:xsd="http://www.w3.org/2001/XMLSchema"    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
      <soapenv:Body>
      <Complaint_Request xmlns="urn:******createserviceticket">
      <CaseNo>12345</CaseNo>
      <CustomerNo>12345</CustomerNo>
      </Complaint_Request>
      </soapenv:Body>
      </soapenv:Envelope>
    To accomodate the change, I also changed my request structure as
      <Complaint_Request> (My new message Type)
        <Envelope>
         <Body>
           <Complaint_Request> (My previous message Type)
            <caseNo>
            <CustomerNo>
    But I am facing problem in mapping the values to the target structure (which is a flat structure),
    as the payload doesnot start with ' ns1: ' notation any more . Even XSLT mapping is not working.
    When I am pasting the payload in the Testing Mapping Editor, the Source Node are correctly
    formed, but all come in RED . But as the root node , ie 'ns0' is not there, the value
    from child nodes are not getting mapped to the target fields.
    Regards,
    Subhendu

    Hi Joel,
    SAP says, when we use the option 'DO Not Use SOAP Envelope', the payload also contains the SOAP
    Envelope. So it is obvious that the payload wont start with 'ns0' notation.
    So I am searching for a solution, when we use that option.
    Regards,
    Subhendu

  • XSLT mapping with SOAP Envelope

    Hi
    I'm trying map SOAP response (with Envelope) to pick two values into the target. Here's the data:
    Source (with data):
    <?xml version="1.0"?>
    <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
         <soap:Body>
              <EnumerateResponse xmlns="http://www.approva.net/BizRights/Services">
                   <EnumerateResult>
                        <TaskID>-1</TaskID>
                        <Result>FinishedSuccessfully</Result>
                        <StatusInfo/>
                   </EnumerateResult>
                   <pageObject>
                        <startIndex>0</startIndex>
                        <pageSize>10</pageSize>
                        <totalRows>1</totalRows>
                        <moreRecords>false</moreRecords>
                        <rowsReturned>1</rowsReturned>
                   </pageObject>
                   <xmlObjects>(large string of valid data in here)</xmlObjects>
              </EnumerateResponse>
         </soap:Body>
    </soap:Envelope>
    Target:
    Only need Result and xmlObjects into target.
    Mapping:
    <?xml version="1.0"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
         <xsl:template match="/">
              <poll_status_resp_r3>
                   <Result>
                        <xsl:value-of select="EnumerateResponse/Result"/>
                   </Result>
                   <xmlObjects>
                        <xsl:value-of select="EnumerateResponse/xmlObjects"/>
                   </xmlObjects>
              </poll_status_resp_r3>
         </xsl:template>
    </xsl:stylesheet>
    The values are not getting picked-up into the target.
    What am I missing here?
    Any help is appreciated.

    Hi,
    Save the following XSL file as RSpace.xsl
    <?xml version="1.0" encoding="utf-8"?>
    <xsl:stylesheet version="1.0"
      xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
      <xsl:output method="xml" indent="no"/>
      <xsl:template match="/|comment()|processing-instruction()">
        <xsl:copy>
          <xsl:apply-templates/>
        </xsl:copy>
      </xsl:template>
      <xsl:template match="*">
        <xsl:element name="{local-name()}">
          <xsl:apply-templates select="@*|node()"/>
        </xsl:element>
      </xsl:template>
      <xsl:template match="@*">
        <xsl:attribute name="{local-name()}">
          <xsl:value-of select="."/>
        </xsl:attribute>
      </xsl:template>
    </xsl:stylesheet>
    Zip it and import it under Imported Archive.
    In the interface mapping click "+" to add one more mapping.
    Use this XSL as first mapping and your XSL mapping as the second mapping.
    In your XSLT mapping you can use the XPath as
    "Envelope/Body/EnumerateResponse/Result".
    I mean remove the namespace and use the XPATH.
    Thanks,
    Prakash

  • JAVA/ XSLT Mapping to Create a SOAP Envelope

    Hello,
    I have a File to SOAP scenario and it requires the SOAP message with a custom SOAP envelope. I have searched SDN and could only find that SOAP envelope can be created using a JAVA or XSLT mapping. However, I could not find any blog/ article which will help me understand, with an example, how this is actually coded (creating of a custom SOAP envelope).
    Can anyone please point me to a valid blog/ article/ wiki which describes the procedure?
    Thanks,
    Pankaj.
    P.S. Please no spamming of post with links on SOAP Envelope; I have already searched on SDN

    Hello,
    Here is a wiki using PI 7.1
    https://wiki.sdn.sap.com/wiki/display/XI/SampleJAVAMappingcodeusingPI7.1+API
    If you want to create a SOAP Envelope, comment out the codes
      private static final DynamicConfigurationKey KEY_FILENAME =
             DynamicConfigurationKey.create("http://sap.com/xi/XI/System/File","FileName");
    String inParam = arg0.getInputParameters().getString("PARAM_IN1");
         getTrace().addInfo("Input Parameter: " +inParam);
         int offset = inData.indexOf(inParam);
         //7. Reader Message ID from Message Header
         InputHeader messageHeader = arg0.getInputHeader();
         String messageId = messageHeader.getMessageId();
         //8. A DynamicConfiguration is a map containing adapter specific message attributes.
         // It associates DynamicConfigurationKeys with string values. The DynamicConfiguration object is obtained using
         // method getDynamicConfiguration()of class com.sap.aii.mapping.api.TransformationInput;
         DynamicConfiguration conf = arg0.getDynamicConfiguration();
         conf.put(KEY_FILENAME, "This Test file is set by JAVA Mapping");
         String outData = "";if(offset > 0){
         int offset1 = inData.indexOf(">", offset);
         String StartString =inData.substring(0,offset1);
         String DocumentNameSpace = " xmlns=\"urn:iso:std:iso:20022:tech:xsd:pain.002.001.02\"";
         String RemainingString = inData.substring(offset1);
    lastly, instead of using
    outData = StartString + DocumentNameSpace + RemainingString;
    replace it with something like this
    String outData = "";
    outData = "<soap:Envelope xmlns:soap=\"http://www.w3.org/2003/05/soap-envelope\" xmlns:tem=\"http://yournamespace/\"><soap:Header/><soap:Body>"+inData.substring(inData.indexOf("?>")+2)+"</soap:Body></soap:Envelope>";
    Hope this helps,
    Mark

  • Mail-Adapter Integration Engine Error during parsing of SOAP header

    Hello,
    we use XI with the mail adapter. Most of the messages are processed correctly. But sometimes I get following errors in the J2EE-logviewer:
    Transmitting the message to endpoint http://<xi-host>:<http-port>/sap/xi/engine
    ?type=entry using connection AFW failed, due to: com.sap.aii.af.ra.ms.a
    pi.RecoverableException: Received HTTP response code 500 : Error during
    parsing of SOAP header.
    Failed to transmit message 4e913640-4cc5-11dc-8560-00e000c55366(OUTBOUND)
    due to com.sap.aii.af.ra.ms.api.RecoverableException: Received HTTP
    response code 500 : Error during parsing of SOAP header.
    Retries exceded, set message
    4e913640-4cc5-11dc-8560-00e000c55366(OUTBOUND) to status NON_DELIVERED.
    Has somebody else the same problem and solved it or any idea what the matter could be?
    Thanks for your help
    Christian

    Hi Reddy,
    We´ve got the following scenario:
    Exchange-Server (is always up)
    XI Mail-ReceiverAdapter
    I use IMAP4 to access the Outlook-Email-Box
    Everything works fine. But some Emails aren´t processed.
    I think it´s a problem between adapterframework and the integration engine?
    There is no difference between the emails?
    If you´ll need further informations ask me?
    Thanks

Maybe you are looking for

  • How to send Array data using Post Method?

    Var array = $_POST['myData']; array[0] => 'ABC' array[1] => 'DEF' how to improve this code to support send array data...? String url ="http://xxxxx/test.php"; String[] arraystr={"ABC", "DEF", "EDFF"} String parameter = "myData=" +arraystr;    // no s

  • Trouble with Videora Converter

    I tried using the videora iPod Converter and it got stuck on the Transcoding step. It says it is 100% done but it keeps going, and adding frames. Any idea how long this takes, or if i should just start over?

  • Employee is not able to Edit the Request if it is Rejected by the Approver.

    Hi,     we are working on EHP5  , ECC 6.0  . We  are implementing claims and reimbursements . In our process if the employee raises the claim request in the portal and the approver rejects the claim request , employee is not able to edit the request

  • How to handle memory error in /var/adm/messages...

    Hi, I am getting the following error messages often in our systems. Any one of you elabrate what was the problem. SUNW,UltraSPARC-II: [ID 470261 kern.info] [AFT0] Corrected Memory Error detected by CPU3, errID 0x0005a0b0.c96402a9 AFSR 0x00000000.0010

  • Referenced Photos

    I am trying the PSE 9 trial and coming from a background of using Aperture, but I am quite comfortable with Bridge, and have used the Lightroom 2 and 3 trials. Aperture has two ways of handling photos: managed or referenced, and I prefer 'referencing