SOAP Envelope element descriptions

Does anybody have a link to a document that explains the semantic meaning of all of the elements that exist within the PI message SOAP Header?
BR,
Tony.
Edited by: Anthony Bateman on Apr 14, 2008 12:42 PM

Hi ,
This is from some document ...check it.
<i>The SOAP adapter creates the SOAP envelope. You cannot influence this procedure. If
you need to apply special tags inside the SOAP header, the only option is to create the
whole SOAP envelope during mapping, and in the case of a synchronous call, to remove
the SOAP envelope in the mapping.
In the SOAP adapter channel, select Do Not Use SOAP Envelope.
By using this parameter, you can use the SOAP adapter to send or receive non-
SOAP messages. In this case the sender SOAP adapter requires an additional
parameter nosoap=true in the URL. For example:
http://<host>:<j2ee-port>/XISOAPAdapter/MessageServlet?
channel=<party>:<service>:<channel>&nosoap=true</i>
Sekhar

Similar Messages

  • 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.

  • 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

  • SOAP Envelope - HTTP_EXCEPTION - HTTP 500 Internal Server Error

    Pessoal, o cliente em que estou utiliza uma solução para NFe que não é o GRC.
    Para tentar solucionar o problema do SOAP 1.2 e do message header, estou tentando criar o SOAP Envelope utilizando um XSLT, e no Communication Channel eu estou flegando Do not use soap envelope e colocando os modules para os charset, assim como na nota da SAP.
    O que está ocorrendo é que estou tendo o seguinte erro:
    com.sap.aii.af.ra.ms.api.DeliveryException: SOAP: response message contains an error XIAdapter/HTTP/ADAPTER.HTTP_EXCEPTION - HTTP 500 Internal Server Error
    Conversei com um rapaz na SEFAZ e ele diz que não está chegando nada pra ele.
    O SOAP Envelope que estou mandando é:
       está dentro de tags CDATA.
    Alguém saberia o que está ocorrendo?
    Muito obrigao,
    Leandro Rocha

    Olá Henrique, muito obrigado pela rápida resposta.
    O erro que dá no audit log é:
    SOAP: response message contains an error XIAdapter/HTTP/ADAPTER.HTTP_EXCEPTION - HTTP 500 Internal Server Error
    MP: Exception caught with cause com.sap.aii.af.ra.ms.api.RecoverableException: SOAP: response message contains an error XIAdapter/HTTP/ADAPTER.HTTP_EXCEPTION - HTTP 500 Internal Server Error
    Delivery of the message to the application using connection SOAP_http://sap.com/xi/XI/System failed, due to: com.sap.aii.af.ra.ms.api.RecoverableException: SOAP: response message contains an error XIAdapter/HTTP/ADAPTER.HTTP_EXCEPTION - HTTP 500 Internal Server Error. Setting message to status failed.
    A mensagem que aparece no adapter é a padrão do SOAP Document:
    - <SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
    - <SOAP:Header xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:wsse="http://www.docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
    - <SAP:Main versionMajor="3" versionMinor="0" SOAP:mustUnderstand="1" xmlns:wsu="http://www.docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" wsu:Id="wsuid-main-92ABE13F5C59AB7FE10000000A1551F7">
      <SAP:MessageClass>ApplicationMessage</SAP:MessageClass>
      <SAP:ProcessingMode>synchronous</SAP:ProcessingMode>
      <SAP:MessageId>dfe81887-3f6a-55f1-b933-0050568169b4</SAP:MessageId>
      <SAP:TimeSent>2010-11-04T13:36:35Z</SAP:TimeSent>
    - <SAP:Sender>
      <SAP:Party agency="" scheme="" />
      <SAP:Service>NFe_recepcao</SAP:Service>
      </SAP:Sender>
    - <SAP:Receiver>
      <SAP:Party agency="" scheme="" />
      <SAP:Service>SEFAZ_RS</SAP:Service>
      </SAP:Receiver>
      <SAP:Interface namespace="http://www.gerdau.com.br/nfe">NFe_recepcao_inbound_sync</SAP:Interface>
      </SAP:Main>
    - <SAP:ReliableMessaging SOAP:mustUnderstand="1">
      <SAP:QualityOfService>BestEffort</SAP:QualityOfService>
      </SAP:ReliableMessaging>
    - <SAP:Diagnostic SOAP:mustUnderstand="1">
      <SAP:TraceLevel>Information</SAP:TraceLevel>
      <SAP:Logging>Off</SAP:Logging>
      </SAP:Diagnostic>
    - <SAP:HopList SOAP:mustUnderstand="1">
    - <SAP:Hop timeStamp="2010-11-04T13:36:39Z" wasRead="false">
      <SAP:Engine type="PE" />
      <SAP:Adapter namespace="http://sap.com/xi/XI/System">PE</SAP:Adapter>
      <SAP:MessageId>dfe81887-3f6a-55f1-b933-0050568169b4</SAP:MessageId>
      <SAP:Info />
      </SAP:Hop>
    - <SAP:Hop timeStamp="2010-11-04T13:36:39Z" wasRead="false">
      <SAP:Engine type="IS">is.00.ebsgerd26</SAP:Engine>
      <SAP:Adapter namespace="http://sap.com/xi/XI/System">XI</SAP:Adapter>
      <SAP:MessageId>dfe81887-3f6a-55f1-b933-0050568169b4</SAP:MessageId>
      <SAP:Info>3.0</SAP:Info>
      </SAP:Hop>
    - <SAP:Hop timeStamp="2010-11-04T13:36:41Z" wasRead="false">
      <SAP:Engine type="AE">af.p7d.ebsgerd26</SAP:Engine>
      <SAP:Adapter namespace="http://sap.com/xi/XI/System">XIRA</SAP:Adapter>
      <SAP:MessageId>dfe81887-3f6a-55f1-b933-0050568169b4</SAP:MessageId>
      </SAP:Hop>
      </SAP:HopList>
      </SOAP:Header>
    - <SOAP:Body>
    - <sap:Manifest 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" wsu:Id="wsuid-manifest-5CABE13F5C59AB7FE10000000A1551F7">
    - <sap:Payload xlink:type="simple" xlink:href="cid:payload-DFE818873F6A21F1B9330050568169B4">
      <sap:Name>MainDocument</sap:Name>
      <sap:Description />
      <sap:Type>Application</sap:Type>
      </sap:Payload>
      </sap:Manifest>
      </SOAP:Body>
      </SOAP:Envelope>
    Mais uma vez, muito obrigado,
    Leandro

  • Generating SOAP Envelope when DO NOT USE ENVELOPE option is marked

    My scenario: SPROXY => XI => 3rdParty WebService. Communication is synchronous. I've a problem with soap envelope. It is required by webservice, but when I use standard soap envelope generated by SAP I've a problem with receiving response from webservice.
    So I want to create my own envelope. For this reason I've used DO NOT USE SOAP ENVELOPE option. Now the challenge comes. How can I create my own soap envelope?
    Do you have any working example? Soap envelope should be added to message send from XI to 3rdParty WebService.
    Helping answers => a lot of points

    I'm talking about HTTP header.
    When I'm sending SOAP request from SAP my whole message looks like when I use soap envelope
    POST / HTTP/1.0
    Accept: */*
    Host: 192.168.132.179:54000
    User-Agent: SAP-Messaging-com.sap.aii.messaging/1.0505
    Content-ID: <soap-02cce7702b1a11dd9902000c29ee261e[at]sap.com>
    Content-Type: text/xml; charset=utf-8
    Content-Disposition: attachment;filename="soap-02cce7702b1a11dd9902000c29ee261e[at]sap.com.xml"
    Content-Description: SOAP
    Content-Length: 259
    SOAPACTION:
    <SOAP:Envelope xmlns:SOAP='http://schemas.xmlsoap.org/soap/envelope/'><SOAP:Header/><SOAP:Body><ns0:Sd2Ids_SzfExport xmlns:ns0='http://www.dat.de/sdii/ids/Sd2SOAP.wsdl'><arg1>1234567899-0</arg1><arg2>1</arg2></ns0:Sd2Ids_SzfExport></SOAP:Body></SOAP:Envelope>
    Always after such request I got and HTTP 411 error.
    In opposite, when I'm sending request from e.g. Altova or SoapUI, my message looks:
    POST / HTTP/1.1
    Content-Type: text/xml; Charset=UTF-8
    User-Agent: XML Spy
    Host: 192.168.132.179:54000
    Content-Length: 489
    Connection: Keep-Alive
    Cache-Control: no-cache
    <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">
         <SOAP-ENV:Body>
              <m:Sd2Ids_SzfExport xmlns:m="http://www.dat.de/sdii/ids/Sd2SOAP.wsdl">
                   <arg1 xsi:type="xsd:string">1234567899-0</arg1>
                   <arg2 xsi:type="xsd:string">1</arg2>
              </m:Sd2Ids_SzfExport>
         </SOAP-ENV:Body>
    </SOAP-ENV:Envelope>
    After that request WebService response is correct.
    You can find such differences (except Content-length which is a result of XML message formatting) in those two headers:
    - for first is used HTTP 1.0 protocol for later 1.1
    - in SAP header an info about attachment is added
    After a lot of test I thing that those attachment info in header of HTTP is causing a problem. So I want to use DO NOT USE SOAP ENVELOPE option to generate HTTP header without Content-Disposition and generate SOAP Envelope manually.

  • SOAP Adapter: DO not use soap envelope

    Hi Guys
    I have a scenario, which calls a webservice from my ABAP Proxies, the twist in this is that SOAP request expects license info into the header of SOAP envelope, I could achive this by XSLT mapping in the receiver SOAP adapter I selected the option "Do not use SOAP envelope" and could do the call.
    Due to this the response received from the webservice is treated as payload, as shown below...
    response message payload:
    <?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">
      <Header xmlns="http://schemas.xmlsoap.org/soap/envelope/">
        <SubscriptionInfo xmlns="http://ws.strikeiron.com">
          <LicenseStatusCode>0</LicenseStatusCode>
          <LicenseStatus>Valid license key</LicenseStatus>
          <LicenseActionCode>0</LicenseActionCode>
          <LicenseAction>Decremented hit count</LicenseAction>
          <RemainingHits>18</RemainingHits>
          <Amount>0</Amount>
        </SubscriptionInfo>
      </Header>
      <soap:Body>
        <getRateResponse xmlns="CurrencyRates">
          <getRateResult>44.945</getRateResult>
        </getRateResponse>
      </soap:Body>
    </soap:Envelope>
    and when i am trying to do the response mapping, it is not able to read the value.
    Anyone having any idea, on how we could do this.
    Thanks
    Dheeraj

    Hi
    I am sorry for replying in so late, was busy with some projects.
    I got few mails and this post is cathing up again, so thought of giving the solution I followed without any adapter module or anything, simple plain XSLT mapping.
    <u><b>Integration Repository</b></u>
    1. Created data type and message type for Outbound Interface
    2. Imported the WSDL
    3. Created an XSD out of the sample response I got by calling the WSDL (this you can do from any tool available, i used the strikeiron website), pls refer below to see the XSD below, and you will have to use the message type envelope from it.
    4. Most Important step, created 2 XSLT mappings, one for request and the other for response., Pls refer below for both these mappings.
    5. did the interface mapping
    <u><b>Integration Directory</b></u>
    1. pls configure your scenario as normaly you do, and while you configure the communication channel for your soap receiver, make sure you click on the do not use soap envelop option.
    thats it done.
    <u><b>XSLT Request Mapping</b></u>
    <?xml version="1.0"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
         <xsl:template match="/">
              <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
                   <SOAP-ENV:Header>
                        <LicenseInfo xmlns="http://ws.strikeiron.com">
                             <RegisteredUser>
                                  <UserID>xyz</UserID>
                                  <Password>xyz</Password>
                             </RegisteredUser>
                        </LicenseInfo>
                   </SOAP-ENV:Header>
                   <SOAP-ENV:Body>
                        <getConversion xmlns="CurrencyRates">
                             <FromCurrencyCode>
                                  <xsl:value-of select="//fromCurrency"/>
                             </FromCurrencyCode>
                             <ToCurrencyCode>
                                  <xsl:value-of select="//ToCurrency"/>
                             </ToCurrencyCode>
                             <Amount>1</Amount>
                        </getConversion>
                   </SOAP-ENV:Body>
              </SOAP-ENV:Envelope>
         </xsl:template>
    </xsl:stylesheet>
    <u><b>XSLT Response Mapping</b></u>
    <?xml version='1.0' ?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:a="CurrencyRates" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
         <xsl:template match="/">
              <ns0:MT_Cur_res xmlns:ns0="http://www.april.in/WebService/SOAPHeader">
                   <Rate>
                        <xsl:value-of select="soap:Envelope/soap:Body/a:getConversionResponse/a:getConversionResult"/>
                   </Rate>
              </ns0:MT_Cur_res>
         </xsl:template>
    </xsl:stylesheet>
    <u><b>Webservice Response XSD</b></u>
    <?xml version="1.0" encoding="UTF-8"?>
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://schemas.xmlsoap.org/soap/envelope/" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://ws.strikeiron.com" xmlns:ns2="CurrencyRates">
      <xs:import namespace="CurrencyRates" schemaLocation="ns2.xsd"/>
      <xs:import namespace="http://ws.strikeiron.com" schemaLocation="ns1.xsd"/>
      <xs:element name="Envelope">
        <xs:complexType>
          <xs:sequence>
            <xs:element ref="soap:Header"/>
            <xs:element ref="soap:Body"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="Header">
        <xs:complexType>
          <xs:sequence>
            <xs:element ref="ns1:SubscriptionInfo"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="Body">
        <xs:complexType>
          <xs:sequence>
            <xs:element ref="ns2:getConversionResponse"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:schema>
    let me know in case somebody gets stuck somewhere for this scenario.
    Take Care
    Dheeraj

  • How to capture SOAP fault when using "Do not use SOAP envelope" parameter

    Hi,
    we have a synchronous  RFC -> XI -> Web Service scenario. The Web Service requires some custom SOAP header elements for user authorization which forced us create the entire SOAP message in a message mapping and to set the "Do not use SOAP envelope" parameter in the receiving SOAP adapter.
    In order to capture the SOAP fault message from the Web Service we have created a message interface with a fault message and also created an interface mapping with a fault message mapping.
    Our problem is that the fault message is not populated when we get a SOAP fault message back from the Web Service. Is this due to the fact that we have set the  "Do not use SOAP envelope" parameter?
    Thanks in advance!
    Stefan
    Message was edited by:
            Stefan Nilsson

    Hi Bhavesh,
    I have exaactly same scenario. But the only difference is that the Successful payload is also not coming into PI.
    The request is successfully hittng the webservice.
    Please guide me on how to capture the paylod.
    I am using the WSDL provided by the thirdparty but sill the message is not coming into PI.

  • 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 'entityExpansion' Problem

    Hi all.
    Has anyone got saaj to work from a linux applet communicating with a Servlet ??
    Im using JWSDP1.1 (yes i know its out of date, and at the moment i really dont fancy switching unless its absolutely needed) and tomcat 4.1.24.
    Ive written a simple Servlet which just extracts the root element in the posted SOAPMessage, and then returns the message back to the user.
    SOAPTestServlet.java
    import javax.xml.soap.*;
    import javax.xml.messaging.*;
    import javax.servlet.*;
    import java.util.Date;
    import java.util.*;
    public class SOAPTestServlet extends JAXMServlet implements ReqRespListener {
            private ServletContext servletContext;
            public void init(ServletConfig servletConfig) throws ServletException {
                    super.init(servletConfig);
                    System.out.println("Servlet init");
                    servletContext = servletConfig.getServletContext();
            public SOAPMessage onMessage(SOAPMessage inMsg) {
                    System.out.println("Msg received @ " + (new Date()).toString());
                    try {
                            inMsg.writeTo(System.out);
                            SOAPElement mPElement = getMPElement(inMsg);
                    } catch (Exception e) {
                            e.printStackTrace();
                    System.out.println();
                    return inMsg;
            private SOAPElement getMPElement(SOAPMessage m) throws SOAPException {
              // create search element
              SOAPPart sp = m.getSOAPPart();
              SOAPEnvelope se = sp.getEnvelope();
              Name mPElementName = se.createName("MessageProtocol");
                    System.out.println("Got envelope");
              Iterator itr = m.getSOAPPart().getEnvelope().getBody().getChildElements(mPElementName);
              while (itr.hasNext()) {
                   // assuming there can only one MessageProtocol Element, return first
                   return (SOAPBodyElement) itr.next();
              // if none found return null;
              return null;
    }a simple application sender creates a message and sends it to the servlet. Then receives the reply, prints to command line, and extracts the root element. This code works fine and behaves as normal.
    SOAPSender.java
    import javax.xml.soap.*;
    import java.util.*;
    import javax.swing.*;
    import java.net.URL;
    import java.awt.*;
    public class SOAPSender {
            private SOAPMessage outMsg, inMsg;
            private MessageFactory msgFactory;
            private SOAPConnectionFactory connFactory;
            private SOAPConnection conn;
            private String servletName;
            private URL hostURL;
            public SOAPSender() {}
            public static void main(String args[]) {
                    SOAPSender ss = new SOAPSender();
                    ss.init();
                    ss.start();
            public void init() {
                    System.out.println("Initialising Sender" + (new Date()).toString());
                    try {
                            msgFactory = MessageFactory.newInstance();
                            connFactory = SOAPConnectionFactory.newInstance();
                            servletName = "http://localhost/stServlet/servlet/SOAPTestServlet";
                            System.out.println("URI: " + servletName);
                            hostURL = new URL(servletName);
                            outMsg = createMessage();
                    } catch (Exception e) {
                            System.out.println("Init Exception: " + e.getMessage());
                            e.printStackTrace();
                    System.out.println("Sender Initialised" + (new Date()).toString());
            public void start() {
                    System.out.println("Sender started @ " + (new Date()).toString());
                            try {
                                    System.out.println("Starting send routine    @ " + (new Date()).toString());
                                    conn = connFactory.createConnection();
                                    System.out.println("\tConnection created   @ " + (new Date()).toString());
                                    System.out.println("\tSending message      @ " + (new Date()).toString());
                                    inMsg = conn.call(outMsg, hostURL);
                                    System.out.println("\tReply received   @ " + (new Date()).toString());
                                    System.out.println("\tConnection closing   @ " + (new Date()).toString());
                                    conn.close();
                                    System.out.println("\tConnection closed    @ " + (new Date()).toString());
                                    if (inMsg == null) throw new Exception ("Msg received == null");
                                    //System.out.println("\n\tCheck console for msg");
                                    inMsg.writeTo(System.out);
                                    System.out.println();
                                    System.out.println("\tExtracting data      @ " + (new Date()).toString());
                                    extractData(inMsg);
                                    System.out.println("\tExtracting done      @ " + (new Date()).toString());
                            } catch (Exception e) {
                                    try {
                                            System.out.println("\tConnection closing (forced) @ " + (new Date()).toString());
                                            conn.close();
                                            System.out.println("\tConnection closed (forced) @ " + (new Date()).toString());
                                    } catch (Exception ex) {
                                            System.out.println("\tConnection close exception " + ex.toString());
                                    System.out.println("\tException @ " + (new Date()).toString());
                                    System.out.println("\tException :" + e.toString());
                                    e.printStackTrace();
            private SOAPMessage createMessage() throws SOAPException {
                    // create SOAP message from connection
                    SOAPMessage message = msgFactory.createMessage();
                    // Populate soap message
                    SOAPPart soapPart = message.getSOAPPart();
                    SOAPEnvelope soapEnvelope = soapPart.getEnvelope();
                    SOAPHeader soapHeader = soapEnvelope.getHeader();
                    SOAPBody soapBody = soapEnvelope.getBody();
                    soapHeader.detachNode();
                    // populate body of MSG
                    Name msgPElement = soapEnvelope.createName("MessageProtocol");
                    SOAPBodyElement soapBodyElement = soapBody.addBodyElement(msgPElement);
                    return message;
            private void extractData(SOAPMessage message) throws SOAPException {
                    SOAPElement mPElement = getMPElement(message);
            private SOAPElement getMPElement(SOAPMessage m) throws SOAPException {
              // create search element
              SOAPPart sp = m.getSOAPPart();
              SOAPEnvelope se = sp.getEnvelope();
              Name mPElementName = se.createName("MessageProtocol");
              // locate MessageProtocol Element
              Iterator itr = m.getSOAPPart().getEnvelope().getBody().getChildElements(mPElementName);
              while (itr.hasNext()) {
                   // assuming there can only one MessageProtocol Element, return first
                   return (SOAPBodyElement) itr.next();
              // if none found return null;
              return null;
    }output:
    Initialising Sender Mon Oct 27 12:58:19 GMT 2003
    URI: http://localhost/stServlet/servlet/SOAPTestServlet
    Sender Initialised Mon Oct 27 12:58:20 GMT 2003
    Sender started @ Mon Oct 27 12:58:20 GMT 2003
    Starting send routine    @ Mon Oct 27 12:58:20 GMT 2003
            Connection created   @ Mon Oct 27 12:58:20 GMT 2003
            Sending message      @ Mon Oct 27 12:58:20 GMT 2003
            Reply received   @ Mon Oct 27 12:58:20 GMT 2003
            Connection closing   @ Mon Oct 27 12:58:20 GMT 2003
            Connection closed    @ Mon Oct 27 12:58:20 GMT 2003
    <soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/"><soap-env:Body><MessageProtocol></MessageProtocol></soap-env:Body></soap-env:Envelope>
            Extracting data      @ Mon Oct 27 12:58:20 GMT 2003
            Extracting done      @ Mon Oct 27 12:58:20 GMT 2003The same code in applet form however throws an Entity expansion exception when i try the line sp.getEnvelope(); in getMPElement() method:
    Initialising AppletMon Oct 27 12:47:02 GMT 2003
    URI: http://localhost/stServlet/servlet/SOAPTestServlet
    Got Envelope
    Applet InitialisedMon Oct 27 12:47:02 GMT 2003
    Applet started @ Mon Oct 27 12:47:03 GMT 2003
    <soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/"><soap-env:Body><MessageProtocol></MessageProtocol></soap-env:Body></soap-env:Envelope>
    javax.xml.soap.SOAPException: Unable to create envelope from given source: access denied (java.util.PropertyPermission entityExpansionLimit read) Nested exception: access denied (java.util.PropertyPermission entityExpansionLimit read)
         at com.sun.xml.messaging.saaj.soap.dom4j.EnvelopeFactoryImpl.createEnvelope(EnvelopeFactoryImpl.java:73)
         at com.sun.xml.messaging.saaj.soap.SOAPPartImpl.getEnvelope(SOAPPartImpl.java:87)
         at SOAPSenderApplet.getMPElement(SOAPSenderApplet.java:136)
         at SOAPSenderApplet.extractData(SOAPSenderApplet.java:130)
         at SOAPSenderApplet.start(SOAPSenderApplet.java:89)
         at sun.applet.AppletPanel.run(AppletPanel.java:371)
         at java.lang.Thread.run(Thread.java:536)Windows does not throw this exception. Ive looked on the web, and found that this exception is thrown to prevent 'deeply' nested entity definitions from consuming the CPU and opening a denial of service attack. Not sure that my message contains 'deeply' nested definiations, in fact it contains none at all !!.
    I can call the getMPElement method on the out going message successfully, but not on the reply message. Both SOAP Messages look identical on dumping to the output stream System.out
    Now im as sure as it gets that both the application, and applet are using the same SOAP library files. So why on earth does the applet have a cry, where the application doesnt ??
    Your help would be muchly appreciated. (the Dukes available are all i have left.)

    Once someone replies to your message, you cannot reduce dukes....only increase. Usually best to start where you want, and then possibly raise them to 'perk' interest.
    If you have a message that no one has replied to, you just go to that posting while signed in. It will allow you to reduce dukes.
    Cheers

  • Read SOAP envelope into ABAP using XSLT?

    Hello,
    I have another problem here and this is really driving me nuts - I just don't get it to work.
    As a reply to a web-service I call I get the following xml file. All I need is an xslt that gets me errorCode and errorDescription into an ABAP structure...
    file:
    <?xml version="1.0" encoding="utf-8"?>
    <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
      <SOAP-ENV:Body>
    <mit:rgo xmlns:mit="http://myurl.com"><mit:TECHNICALHEADER><mit:errorCode>A1014</mit:errorCode><mit:errorDescription>Unable to perform operation</mit:errorDescription><mit:password/><mit:user/><mit:applicationKey/></mit:TECHNICALHEADER><mit:file_creation_date>2005-09-06</mit:file_creation_date><mit:file_creation_time>15:06:33.0</mit:file_creation_time><mit:registration><mit:order_nr>DE999TEST</mit:order_nr><mit:vin>XXXXXXXXXXXXXXX04</mit:vin></mit:registration></mit:rgo>  </SOAP-ENV:Body>
    </SOAP-ENV:Envelope>
    my corresponding XSLT is:
    <xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:mit=
    "http://myurl.com" xmlns:asx="http://www.sap.com/abapxml" version="1.0">
      <xsl:strip-space elements="*"/>
      <xsl:template match="/">
        <asx:abap>
          <asx:values>
            <SOAP-ENV:Envelope>
              <SOAP-ENV:Body>
                <mit:rgo>
                  <mit:TECHNICALHEADER>
                    <ANSWER>
                      <mit:errorCode>
                        <xsl:value-of select="ERRORCODE"/>
                      </mit:errorCode>
                      <mit:errorDescription>
                        <xsl:value-of select="ERRORCODEDESCRIPTION"/>
                      </mit:errorDescription>
                    </ANSWER>
                  </mit:TECHNICALHEADER>
                </mit:rgo>
              </SOAP-ENV:Body>
            </SOAP-ENV:Envelope>
          </asx:values>
        </asx:abap>
      </xsl:template>
    </xsl:transform>
    What am I doing wrong or what do I need to do? I'm lost!
    Thank you for your help!
    Johannes.

    Thank you Durairaj, as a matter of fact my program is based on your post (one that you pointed me to). For whatever reason I'm not having luck figuring it out (may be just a bit of work pressure) could you please hlep me a bit more by pointing me to where in my program code/xslt I'm going wrong? I somehow feel that it could be my table structure or xslt.
    I would really appreciate it!
    Thanks again,
    erfan.

  • SOAP Envelope Requirements

    Hi,
    i have a question concerning SOAP envelope.
    (We run on XI30 SP19.)
    A message sent to SOAP adapter with
    <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://www.w3.org/2003/05/soap-SOAP-Envelope">
    runs on error:
    Caused by: org.apache.xmlbeans.XmlException: error: The document is not a Envelope@http://www.w3.org/2003/05/soap-SOAP-Envelope: document element namespace mismatch expected "http://www.w3.org/2003/05/soap-SOAP-Envelope" got http://schemas.xmlsoap.org/soap/envelope/
    If i use
    <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">
    it works.
    Can anyone point me to a ressource which describes the XI requirements to the SOAP envelope?
    What is/isnt allowed for XI in special?
    Thank you very much in advance.
    Michael
    Edited by: Michael Höcht on Oct 28, 2008 2:56 PM

    Hmm, based on error it looks like service provider expecting some security headers. Are you able to test from other utility soapUI or browser?
    Regards,
    Chintan

  • WCF request with utl_dbws how to add Header into SOAP envelope

    I’m trying to make WCF (Windows Communication Foundation) request and using for that utl_dbws package.
    After making request (calling utl_dbws.invoke) it will give error “ORA-29532: Java call terminated by uncaught Java exception: javax.xml.rpc.soap.SOAPFaultException: The server was unable to process the request due to an internal error. For more information about the error, either turn on IncludeExceptionDetailInFaults (either from ServiceBehaviorAttribute or from the <serviceDebug> configuration behavior) on the server in order to send the exception information back to the client, or turn on tracing as per the Microsoft .NET Framework 3.0 SDK documentation and inspect t”
    I turned on logging (utl_dbws.set_logger_level) I see that system sends standard SOAP envelope and does not have Header at all. How can I use my own SOAP envelope and/or add Header.
    All info that logging give is:
    ServiceFacotory: oracle.j2ee.ws.client.ServiceFactoryImpl@eec8c59c
    WSDL: null
    Service: oracle.j2ee.ws.client.BasicService@7c110d23
    *** Created service: -677524827 - oracle.jpub.runtime.dbws.DbwsProxy$ServiceProxy@562bd0c4 ***
    ServiceProxy.get(-677524827) = oracle.jpub.runtime.dbws.DbwsProxy$ServiceProxy@562bd0c4
    getOperationInfo return NULL: port={http://tempuri.org/Service/}BasicHttpBinding_Service, operation={http://tempuri.org/Service/}GetLov
    setProperty(javax.xml.rpc.soap.http.soapaction.use, true)
    setProperty(javax.xml.rpc.soap.http.soapaction.uri, http://tempuri.org/Service/GetLov)
    setProperty(javax.xml.rpc.encodingstyle.namespace.uri, http://www.w3.org/2005/08/addressing)
    setProperty(javax.xml.rpc.security.auth.username, DefaultUser)
    setProperty(javax.xml.rpc.security.auth.password, MySecretPassword)
    <GetLOV xmlns="http://tempuri.org/"> <request xmlns:d4p1="http://schemas.datacontract.org/2004/07/x.y.z.LOV.Request" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"> <d4p1:AgentCode>AGENT</d4p1:AgentCode> <d4p1:Language>ENG</d4p1:Language> <d4p1:ProcessName>test</d4p1:ProcessName> </request></GetLOV>
    Attribute 0: http://tempuri.org/: xmlns, http://tempuri.org/
    createElement(GetLOV,null,http://tempuri.org/)
    Attribute 0: http://tempuri.org/: xmlns, http://tempuri.org/
    dbwsproxy.element.node.child.0: 1, null
    dbwsproxy.add.map: d4p1, http://schemas.datacontract.org/2004/07/x.y.z.LOV.Request
    Attribute 0: http://schemas.datacontract.org/2004/07/x.y.z.LOV.Request: xmlns:d4p1, http://schemas.datacontract.org/2004/07/x.y.z.LOV.Request
    dbwsproxy.add.map: i, http://www.w3.org/2001/XMLSchema-instance
    Attribute 1: http://www.w3.org/2001/XMLSchema-instance: xmlns:i, http://www.w3.org/2001/XMLSchema-instance
    createElement(request,null,http://tempuri.org/)
    dbwsproxy.add.soap.element.namespace: d4p1, http://schemas.datacontract.org/2004/07/x.y.z.LOV.Request
    Attribute 0: http://schemas.datacontract.org/2004/07/x.y.z.LOV.Request: xmlns:d4p1, http://schemas.datacontract.org/2004/07/x.y.z.LOV.Request
    dbwsproxy.add.soap.element.namespace: i, http://www.w3.org/2001/XMLSchema-instance
    Attribute 1: http://www.w3.org/2001/XMLSchema-instance: xmlns:i, http://www.w3.org/2001/XMLSchema-instance
    dbwsproxy.element.node.child.0: 1, null
    dbwsproxy.lookup.map: d4p1, http://schemas.datacontract.org/2004/07/x.y.z.LOV.Request
    createElement(d4p1:AgentCode,null,http://schemas.datacontract.org/2004/07/x.y.z.LOV.Request)
    dbwsproxy.text.node.child.0: 3, E01306
    dbwsproxy.element.node.child.1: 1, null
    dbwsproxy.lookup.map: d4p1, http://schemas.datacontract.org/2004/07/x.y.z.LOV.Request
    createElement(d4p1:Language,null,http://schemas.datacontract.org/2004/07/x.y.z.LOV.Request)
    dbwsproxy.text.node.child.0: 3, ENG
    dbwsproxy.element.node.child.2: 1, null
    dbwsproxy.lookup.map: d4p1, http://schemas.datacontract.org/2004/07/x.y.z.LOV.Request
    createElement(d4p1:ProcessName,null,http://schemas.datacontract.org/2004/07/x.y.z.LOV.Request)
    dbwsproxy.text.node.child.0: 3, tesr
    request:
    <GetLOV xmlns="http://tempuri.org/">
    <request xmlns:d4p1="http://schemas.datacontract.org/2004/07/x.y.z.LOV.Request" xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://tempuri.org/">
    <d4p1:AgentCode>AGENT</d4p1:AgentCode>
    <d4p1:Language>ENG</d4p1:Language>
    <d4p1:ProcessName>test</d4p1:ProcessName>
    </request>
    </GetLOV>
    13.05.2010 14:17:28 oracle.j2ee.ws.client.ClientMessages infoAboutToInvokeCallForEndpoint
    INFO: Trying to connect to URL: https://x.y.z/WS/ Service.svc
    13.05.2010 14:17:30 oracle.j2ee.ws.client.StreamingSender _sendImpl
    FINE: StreamingSender.request:<?xml version="1.0" encoding="UTF-8"?><env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><env:Body><GetLOV xmlns="http://tempuri.org/"><request xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns:d4p1="http://schemas.datacontract.org/2004/07/x.y.z.LOV.Request"><d4p1:AgentCode>AGENT</d4p1:AgentCode><d4p1:Language>ENG</d4p1:Language><d4p1:ProcessName>test</d4p1:ProcessName></request></GetLOV></env:Body></env:Envelope>
    13.05.2010 14:17:30 oracle.j2ee.ws.client.StreamingSender _sendImpl
    FINE: StreamingSender.response:<?xml version="1.0" encoding="UTF-8"?><s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"><s:Body><s:Fault><faultcode xmlns:a="http://schemas.microsoft.com/net/2005/12/windowscommunicationfoundation/dispatcher">a:InternalServiceFault</faultcode><faultstring xml:lang="et-EE">The server was unable to process the request due to an internal error. For more information about the error, either turn on IncludeExceptionDetailInFaults (either from ServiceBehaviorAttribute or from the &lt;serviceDebug&gt; configuration behavior) on the server in order to send the exception information back to the client, or turn on tracing as per the Microsoft .NET Framework 3.0 SDK documentation and inspect the server trace logs.</faultstring></s:Fault></s:Body></s:Envelope>
    Exception in thread "Root Thread" javax.xml.rpc.soap.SOAPFaultException: The server was unable to process the request due to an internal error. For more information about the error, either turn on IncludeExceptionDetailInFaults (either from ServiceBehaviorAttribute or from the <serviceDebug> configuration behavior) on the server in order to send the exception information back to the client, or turn on tracing as per the Microsoft .NET Framework 3.0 SDK documentation and inspect the server trace logs.
         at oracle.j2ee.ws.client.StreamingSender._raiseFault(StreamingSender.java:559)
         at oracle.j2ee.ws.client.StreamingSender._sendImpl(StreamingSender.java)
         at oracle.j2ee.ws.client.StreamingSender._send(StreamingSender.java:112)
         at oracle.j2ee.ws.client.dii.CallInvokerImpl.directInvoke(CallInvokerImpl.java:705)
         at oracle.j2ee.ws.client.dii.BasicCall.directInvoke(BasicCall.java:692)
         at oracle.j2ee.ws.client.dii.BasicCall.invoke(BasicCall.java:598)
         at oracle.jpub.runtime.dbws.DbwsProxy$CallProxy.invokeProxy(Unknown Source)
         at oracle.jpub.runtime.dbws.DbwsProxy$CallProxy.access$2600(Unknown Source)
         at oracle.jpub.runtime.dbws.DbwsProxy.invokeProxy(Unknown Source)

    HTTP is HTPP... mostly.
    In other words, the application protocol is stand and specified in RFC2616 (http://www.w3.org/Protocols/rfc2616/rfc2616.html)
    The exception is specific proprietary extensions.. like for example Microsoft's NTLM authentication handshake.
    The UTL_HTTP interface supports the protocol pretty well as per the protocol's specification. So using it to interact with a a web service should not be a major issue. The protocol is standard (e.g. POST command is used to supply the payload to the web service). The only real issue is formatting the payload for that as per what the web service expect. And that has nothing to do with HTTP itself - or UTL_HTTP. It is simply the delivering mechanism.
    Getting that mechanism to work is fairly easy and should not pose a problem. Instead I suggest you focus on exactly how the HTTP payload needs to look like. Does that web service expects any specific name-values in the header? What does it expect in the body? Etc.

  • How much commands possible in a SOAP Envelope?

    Hi all!
    How much commands are possible in a single SOAP transaction?
    Best regards
    Marian

    Do you mean like this???
    <b>BatchInteract Interface Structure</b>
    <i>The BatchInteract method enables you to perform multiple transactions in the database using a single SOAP request message. For example, you can add 1000 items to the database in a single SOAP request message.
    The main advantage of using this method instead of the Interact method is that if a single transaction fails all remaining transactions are not affected.
    The BatchInteract structure consists of an Envelopes element that contains a separate Envelope element for each transaction as shown below.
    </i>
    xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"
    <Envelopes>
        <Envelope>
        </Envelope>
        <Envelope>
        </Envelope>
    </Envelopes>
    The structure of each envelope is the same as described in DI Server SOAP Message Structure of SDK.

  • How To Create SOAP Envelop For WSDL

    Hi Friends,
    I have created one  webservice WSDL and i want to create SOAP Envelop for this.
    Can any one help me out how to create SOAP Envelop based on WSDL.
    ***************My WSDL***********************************
    <?xml version="1.0" encoding="UTF-8" ?>
    - <!-- Published by JAX-WS RI at http://jax-ws.dev.java.net. RI's version is Oracle JAX-WS 2.1.5.
    -->
    - <!-- Generated by JAX-WS RI at http://jax-ws.dev.java.net. RI's version is Oracle JAX-WS 2.1.5.
    -->
    - <definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://annotation/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://annotation/" name="MyCompanyWS">
    - <types>
    - <xsd:schema>
    <xsd:import namespace="http://annotation/" schemaLocation="http://localhost:7101/WebService-Annotation-context-root/MyCompanyPort?xsd=1" />
    </xsd:schema>
    </types>
    - <message name="setMyDepts">
    <part name="parameters" element="tns:setMyDepts" />
    </message>
    - <message name="setMyDeptsResponse">
    <part name="parameters" element="tns:setMyDeptsResponse" />
    </message>
    - <message name="getMyDepts">
    <part name="parameters" element="tns:getMyDepts" />
    </message>
    - <message name="getMyDeptsResponse">
    <part name="parameters" element="tns:getMyDeptsResponse" />
    </message>
    - <message name="addEmployeeToDept">
    <part name="parameters" element="tns:addEmployeeToDept" />
    </message>
    - <message name="addEmployeeToDeptResponse">
    <part name="parameters" element="tns:addEmployeeToDeptResponse" />
    </message>
    - <message name="getDeptInfo">
    <part name="parameters" element="tns:getDeptInfo" />
    </message>
    - <message name="getDeptInfoResponse">
    <part name="parameters" element="tns:getDeptInfoResponse" />
    </message>
    - <portType name="MyCompany">
    - <operation name="setMyDepts">
    <input message="tns:setMyDepts" />
    <output message="tns:setMyDeptsResponse" />
    </operation>
    - <operation name="getMyDepts">
    <input message="tns:getMyDepts" />
    <output message="tns:getMyDeptsResponse" />
    </operation>
    - <operation name="addEmployeeToDept">
    <input message="tns:addEmployeeToDept" />
    <output message="tns:addEmployeeToDeptResponse" />
    </operation>
    - <operation name="getDeptInfo">
    <input message="tns:getDeptInfo" />
    <output message="tns:getDeptInfoResponse" />
    </operation>
    </portType>
    - <binding name="MyCompanyPortBinding" type="tns:MyCompany">
    <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="" />
    - <operation name="setMyDepts">
    <soap:operation soapAction="" />
    - <input>
    <soap:body use="literal" />
    </input>
    - <output>
    <soap:body use="literal" />
    </output>
    </operation>
    - <operation name="getMyDepts">
    <soap:operation soapAction="" />
    - <input>
    <soap:body use="literal" />
    </input>
    - <output>
    <soap:body use="literal" />
    </output>
    </operation>
    - <operation name="addEmployeeToDept">
    <soap:operation soapAction="" />
    - <input>
    <soap:body use="literal" />
    </input>
    - <output>
    <soap:body use="literal" />
    </output>
    </operation>
    - <operation name="getDeptInfo">
    <soap:operation soapAction="" />
    - <input>
    <soap:body use="literal" />
    </input>
    - <output>
    <soap:body use="literal" />
    </output>
    </operation>
    </binding>
    - <service name="MyCompanyWS">
    - <port name="MyCompanyPort" binding="tns:MyCompanyPortBinding">
    <soap:address location="http://localhost:7101/WebService-Annotation-context-root/MyCompanyPort" />
    </port>
    </service>
    </definitions>
    Thanks in Advance.
    Bachan
    Edited by: Bachan on Sep 1, 2010 9:04 PM

    Thanks Sam,
    SOAP UI saved my life but that want last long.
    But still my issue is not resolved.
    I am using a plsql program to take the Values from SOAP envelop and pass it to web-service and get the responce.
    I am sure my approach is perfectly fine. because it is working fine with other examples, but mean while i have a WSDL link this is really big and my program is not working for this WSDL link.
    infact i am getting the output as the same XML of URL.
    Let me know if u can help me out.
    Thanks
    Bachan.

  • PB & web service : how to manipulate soap envelop ?

    Hi all,
    I am in the process of testing PB's ability to consume an existing web service. I have done some reading left and right.
    I can create the proxy , but i always end up having the Cannot invoke webservice messagebox.
    Here's my little piece of PB code 
    PB CODE START
    soapconnection conn // Define SoapConnection
    checkvatport proxy_obj // Declare proxy
    long rVal, lLog
    real amount
    date date_a
    string ls_a,ls_b,ls_c
    conn = create soapconnection  //Instantiated connection
    lLog = conn.SetSoapLogFile ("C:\mySoapLog.log")
    rVal = Conn.CreateInstance(proxy_obj, "checkvatport", "")
    messagebox("test rval",string(rval))
    // Create proxy object
    try
       date_a = today()
      boolean w_t
      w_t = TRUE
       str_checkvat str1
       tns1__checkvatresponse str2
      str1.countrycode = "BE"
      str1.vatnumber = "0810416786"
      ls_a  = proxy_obj.checkvat(str1.countryCode,str1.vatNumber,str2.requestdate,str2.valid,str2.address)
      messagebox("LS-a",ls_a)
    catch ( SoapException e )
       messagebox ("Error", "Cannot invoke Web service")
       // error handling  
    end try
    destroy conn
    PB CODE END
    And here's the soaplog contents
    SOAPLOG START
    CLOSED
    REQUEST:
    CLOSED
    POST /taxation_customs/vies/services/checkVatService HTTP/1.1
    Host: ec.europa.eu
    Connection: Keep-Alive
    User-Agent: EasySoap++/0.6
    Content-Type: text/xml; charset=utf-8
    SOAPAction: "urn:ec.europa.eu:taxud:vies:services:checkVat#checkVat"
    Content-Length: 654
    <E:Envelope
      xmlns:E="http://schemas.xmlsoap.org/soap/envelope/"
      xmlns:A="http://schemas.xmlsoap.org/soap/encoding/"
      xmlns:s="http://www.w3.org/2001/XMLSchema-instance"
      xmlns:y="http://www.w3.org/2001/XMLSchema"
      E:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
    <E:Body>
    <m:checkVat
      xmlns:m="urn:ec.europa.eu:taxud:vies:services:checkVat:types">
    <ns1:countryCode
      xmlns:ns1="urn:ec.europa.eu:taxud:vies:services:checkVat"
      s:type="y:string">BE</ns1:countryCode>
    <ns2:vatNumber
      xmlns:ns2="urn:ec.europa.eu:taxud:vies:services:checkVat"
      s:type="y:string">0810416786</ns2:vatNumber>
    </m:checkVat>
    </E:Body>
    </E:Envelope>
    RESPONSE:
    HTTP/1.1 500 Internal Server Error
    Date: Wed, 04 Jun 2014 09:33:11 GMT
    Transfer-Encoding: chunked
    Content-Type: text/xml; charset=UTF-8
    Server: Europa
    Connection: Keep-Alive
    Transfer is Chunked!
    01d7
    <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><soap:Fault><faultcode>soap:Client</faultcode><faultstring>Unmarshalling Error: unexpected element (uri:"urn:ec.europa.eu:taxud:vies:services:checkVat", local:"countryCode"). Expected elements are &lt;{urn:ec.europa.eu:taxud:vies:services:checkVat:types}vatNumber>,&lt;{urn:ec.europa.eu:taxud:vies:services:checkVat:types}countryCode> </faultstring></soap:Fault></soap:Body></soap:Envelope>
    0000
    GetChunkLength: 01d7 = 471
    Connection Disconnected
    SOAPLOG END
    Now i tried the to cut and paste the above soap envelop in SOAPUI , and it gives me the exact same error message as in the soaplog.
    I then tried creating a request through SOAPUI but based on the wdsl ,SOAPUI is giving me a different soap envelop as the one PB generated ?
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:ec.europa.eu:taxud:vies:services:checkVat:types">
       <soapenv:Header/>
       <soapenv:Body>
          <urn:checkVat>
             <urn:countryCode>?</urn:countryCode>
             <urn:vatNumber>?</urn:vatNumber>
          </urn:checkVat>
       </soapenv:Body>
    </soapenv:Envelope>
    If i enter parameters in the above envelop and check it through SOAPUI , i end up having the result i want.
    Is there any way we can manipulate the soap envelop contents ? Or does anyone have any idea why the soap envelop generated by PB ends up having the above mentioned error in the soaplog file ?
    What am i missing ?
    TIA
    John

    You're using the EasySOAP proxy.  You didn't mention what version of PowerBuilder, but if you're using a version that supports the .Net engine instead use that.  The EasySOAP web service support is quite old.
    Once you do that you won't be able to use the log.  Instead, use something like Fiddler to trap the request and response.

Maybe you are looking for

  • SKYPE on SAMSUNG TV does not work well.

    Hello there.  I am having a question about SKYPE on my TV.  I own a SAMSUNG UE46D8000 led tv equipped with Skype CY-STC 1100 camera.  The thing is that I cannot listen to other people' s audio.  When I perform Echo/Sound test, I hear nothing (nor the

  • Handling of SOAP Faults in SOAP Clients consuming PI Web services

    Hi there, the following is in regards to SOAP fault error handling in a SOAP client that consumes a Web Service published by PI. I have been reading a number of threads and blogs in regards to this topic and I am still left with some open questions w

  • Error opening database Windows service OracleServiceEMPREP

    I just installed Oracle Grid Control 10.2.0.1 then upgraded it to 10.2.05 on Windows 2003 server. I could open the service OracleServiceEMPREP at 10.2.0.1 but not after I upgraded to 10.2.0.5 This is the error I get. Problem Description: Could not st

  • Migrating from Exchange to SunONE Messaging Server ?

    Hi all, I'm using Microsoft Exchange 2000, Microsoft Active directory for my email server. Now I want to use Sun Java System Messaging Server instead of the old Exchange. - May I use the Sun Messaging Server with the old Microsoft AD ? I want to keep

  • Spliting 3d extruded text

    I am working on a project that has a 3d 5 letter word. I want to split that extrusion and do various things with each individual letter. After I split the extrusion instead of spelling the word out correctly it adds an extra 2 letters. I have seen tu