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

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.

  • 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

  • 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

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

  • Do Not Use SOAP Envelope doesn't show on SOAP Parameters

    Hi!..
    Somebody knows why the Do Not Use SOAP Envelope option on conversion Parameters for SOAP Adapter isn't there?...I have XI 3.0 SP19 and I'd seen on a lot of notes and how's to that there is a kind of option. I need the functionality that that check does but I can't find it.
    I Only have Keep headers, Keep Attachments, Use Encoded headers and Use query string.
    Thanks in advance..
    Carlos.

    HI Carlos,
    I've got same problem, which metadata should I reimport?
    cheers,
    Edu

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

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

  • Proxy to SOAP Scenario, payload with the SOAP envelops

    Hi ,
    We have Scenario like Proxy to SOAP,As per Business requirement they are asking payload with ENVELOP . Like below message
    ================================================================
    <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://www.w3.org/2003/05/soap-envelope" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://www.w3.org/2003/05/soap-encoding">
         <SOAP-ENV:Header>
              <nseps:endpoints xmlns:nseps="urn:schemas-IBX:/docs/endpoint.nsendpoint" SOAP-ENV:mustUnderstand="true">
                   <nseps:to>
                        <nseps:address>b2b2ce96-7a92-1000-910f-c0a8b4340001</nseps:address>
                   </nseps:to>
                   <nseps:from>
                        <nseps:address>b2b2ce96-7a92-1000-910f-c0a8b4340001</nseps:address>
                   </nseps:from>
              </nseps:endpoints>
              <nsprop:properties xmlns:nsprop="urn:schemas-IBX:/docs/property.nsproperty" SOAP-ENV:mustUnderstand="true">
                   <nsprop:identity>3198841w-fa4d-dafa-2797-89029c15255b</nsprop:identity>
                   <nsprop:sentAt>2010-01-18T02:42:08Z</nsprop:sentAt>
                   <nsprop:topic>CostObjectInformation</nsprop:topic>
              </nsprop:properties>
         </SOAP-ENV:Header>
         <SOAP-ENV:Body>
    //Payload of the message to be added here.
    </SOAP-ENV:Body>
    </SOAP-ENV:Envelope>
    I am trying out this in XSLT, but I am not sure how to add the SOAP Envelops and these Envelops are Static.
    Can someone help me out in this.
    Joe

    But if you look at the SOAP Envelop Structure below it is not XI generated SOAP Envelop. IBX (3rd party) has its own standards, so XI has to Produce the SOAP Envelop according to their standards.
    I have created the XSD with SOAP Envelop stucture with what ever structure 3rd party wants, but the problem is when Creating the SOPA Envelp tag, where it has a ":" where its not allowing me to create the valid XSD. And at the same time 3rd party is not in position to give us even WSDL file and we are not using  Webservice call and they are not able to provide the XSD with SOAP envelop structure.
    I thought of going for XSLT and started doing as well with what ever XSD 3rd party has provided, which does not have the SOAP Envelop structure and has only payload XSD structure.
    80% of the SOAP Envelop structure is Static, it does not change. Only 2 fields keeps changing. IS there any solution that we can create XSD with the SOAP structure with Special Character ": "or is there any way in doing in XSLT.
    <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://www.w3.org/2003/05/soap-envelope" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://www.w3.org/2003/05/soap-encoding">
    <SOAP-ENV:Header>
    <nseps:endpoints xmlns:nseps="urn:schemas-IBX:/docs/endpoint.nsendpoint" SOAP-ENV:mustUnderstand="true">
    <nseps:to>
    <nseps:address>b2b2ce96-7a92-1000-910f-c0a8b4340001</nseps:address>
    </nseps:to>
    <nseps:from>
    <nseps:address>b2b2ce96-7a92-1000-910f-c0a8b4340001</nseps:address>
    </nseps:from>
    </nseps:endpoints>
    <nsprop:properties xmlns:nsprop="urn:schemas-IBX:/docs/property.nsproperty" SOAP-ENV:mustUnderstand="true">
    <nsprop:identity>3198841w-fa4d-dafa-2797-89029c15255b</nsprop:identity>
    <nsprop:sentAt>2010-01-18T02:42:08Z</nsprop:sentAt>
    <nsprop:topic>CostObjectInformation</nsprop:topic>
    </nsprop:properties>
    </SOAP-ENV:Header>
    <SOAP-ENV:Body>
    its a high priority issue.
    Thanks in Advance.
    Joe.

  • SOAP Envelope Additional Header Fields

    Hi,
    I need to add additional fields in the SOAP Header when calling a web service for eg.
    <SOAP:Envelope............>
    <SOAP:Header>
        <ns1:customTag>
        </ns1:customTag>
    the standard tags here
    <SAP:Main...
    </SAP:Main>
    <SOAP:Header>
    </SOAP:Envelope>
    Any Blog/Example ??

    Gupta,
    Read this thread it might address solution ur problem -Re: XI30 SPS16 - SOAP Sender Adapter - self-defined SOAP-Header
    raj.

  • SOAP wdsl generation problem j developer

    hi im having a problem with wsdl file generated from jdeveloper.
    I expose a pl/sql function as a web service. I can then conect to the soap url with a web browser and sucessfull publish data to the db from this , but if i take the wsdl file from jdeveloper in to a soap test client (magoo) i get an error, on anything that trys to post data back to the DB ???
    the error is
    No Deserializer found to deserialize a ':emp' using encoding style 'http://schemas.xmlsoap.org/soap/encoding/'.
    im not using BPEL (which i know has some soap problems)
    THIS IS THE SOAP MESSAGE THE WSDL FILE GENERATES
    <?xml version='1.0' encoding='UTF-8'?>
    <soapenv:Envelope xmlns:m='MyWebService-v9' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:ns1='http://oadev11/Company.xsd' xmlns:xsd='http://www.w3.org/2001/XMLSchema' xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/'>
    <soapenv:Body soapenv:encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'>
    <m:addemp>
    <emp>
    <eid xsi:type='xsd:int'>7</eid>
    <efirstname xsi:type='xsd:string'>mr</efirstname>
    <elastname xsi:type='xsd:string'>magoo</elastname>
    <addr>
    <street xsi:type='xsd:string'>granby grove</street>
    <city xsi:type='xsd:string'>southampton</city>
    <state xsi:type='xsd:string'>uk</state>
    <zip xsi:type='xsd:string'>so</zip>
    </addr>
    <salary xsi:type='xsd:double'>1000</salary>
    </emp>
    </m:addemp>
    </soapenv:Body>
    </soapenv:Envelope>
    this returns an error,
    No Deserializer found to deserialize a ':emp' using encoding style 'http://schemas.xmlsoap.org/soap/encoding/'.
    ive tested the client with the googlesearchapi wsdl file, so the client is working ok, I think there might be a problem with the wsdl file generation. can anyone sugest what this might be?
    conecting directly to the soap service url and submitting xml suggested by the interface, adds the entry to the databse and works fine
    <emp xmlns:ns1="http://oadev11/Company.xsd"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:type="ns1:oadev11_EmployeeUser">
    <eid xsi:type="xsd:int">7</eid>
    <efirstname xsi:type="xsd:string">MR</efirstname>
    <elastname xsi:type="xsd:string">MAGGO</elastname>
    <addr xsi:type="ns1:oadev11_AddressUser">
    <street xsi:type="xsd:string">Granby grove</street>
    <city xsi:type="xsd:string">southampton</city>
    <state xsi:type="xsd:string">uk</state>
    <zip xsi:type="xsd:string">SO</zip>
    </addr>
    <salary xsi:type="xsd:double">1000</salary>
    </emp>
    This sucessfuly ads the entry to the databse any ideas please?

    Hi,
    Action parameter is always under Opertaion tag of your wsdl. In your case it is
    Action = rpc/http://siebel.com/CustomUI:ATDDQMatchWS
    <operation name="ATDDQMatchWS">
    <soap:operation soapAction="rpc/http://siebel.com/CustomUI:ATDDQMatchWS"/>
    <input>
    <soap:body use="literal" namespace="http://siebel.com/CustomUI"/>
    </input>
    <output>
    <soap:body use="literal" namespace="http://siebel.com/CustomUI"/>
    </output>
    </operation>
    It looks to me you are trying to invoke RC encoded webservice which is not supported in XI.
    Reward points if find useful
    Thanks
    Amit

  • No SOAP Envelope but 1 {'}Values; HTTP 200 OK

    Hi Experts,
    I am configuring a scneario IDOC to SOAP , Asynchronous call  to an https url that is available through internet.
    When I try to post message to this url. I am getting following error:
    SOAP: call failed: java.io.IOException: No SOAP Envelope but 1 {'}Values; HTTP 200 OK
    in SOAP Adapter Log. Due to this error the message is set to NDLV.
    I am using PI7.1
    My Receiver Channel configurations are as contain
    the third party url https://target with username password authentication. I have also imported client certificates.
    Webservice host says its a problem with PI system and SAP says that its issue with Webservice.
    Please let me know how can I resolve this issue. Am I missing something in my configuration. This is kind of a burning issue currently any help will be appreciated.
    Regards,
    Raj

    Hi Raj,
    This looks strange. If the error text is telling the truth, your SSL connection was working and you could even reach some service that returned HTTP 200 OK. But this service didn't return a SOAP response. I don't know what 1 {*} Values means. It sounds broken to me. You can open a ticket.
    But the reason why you didn't get a valid SOAP response (either a good one or a fault) is probably that your target URL is incorrect. Verify the URL and run the scenario with the relevant components (refer to the SOAP adapter FAQ note) on DEBUG. The default trace file should give you more information about this apparently corrupted response.
    Best regards, Yza

  • Avoid using Username and password in SOAP Envelope

    Hi Team
    I am working on calling the sercured web-service from PLSQL and able to call it successfully and get the response.
    In the SOAP envelope, I have header and body.
    Header contains the WS Security which includes username and password to authenticate the web-service and body contains the actual input pay load for service.
    Currently, header has username and password as 'hard-coded', is there a way to avoid the usage of username and password.
    We already tried to SIF for EBS methodology where in following steps are done:
    1) Create and event in EBS.
    2) Pass the event along with payload to SOA.
    3) SOA receives the event and triggers web-service and gets the response.
    4) Pass the response to EBS.
    This technique does avoid usage of username and password but takes 20 seconds to do the job. However, the appraoch above takes hardly 1 second.
    Please let me know in case any one has any idea on how to avoid credentials usage in SOAP envelope.
    Thanks
    Mirza Tanzeel

    How about doing away with that approach entirely?
    Password authentication requires one to keep a secret, secret. And that is the primary problem as how does one safely guard the secret, and manage the secret (by regularly changing)?
    Relying on secrets is a problem. I have never been a fan of password based security.
    Instead:
    a) use HTTPS to secure communication between sender and receiver
    b) use robust firewall rules to ensure that only sender is allowed to communicate with receiver
    c) implement sound network management and exception reporting (to detect and prevent violations on network infrastructure level)
    If you lack in the network infrastructure and administration areas, then:
    a) make the web service endpoint on server on localhost only (do not expose it to the outside world)
    b) establish a trusted ssh connection between sender and receiver using strongly encrypted RSA/DSA keys
    c) configure sender with a service that opens a reverse tunnel to target, exposing the web service as a local port on its localhost

  • Namespace prefix in SOAP Elements causes problems in XI

    Hi guys,
    I'm using code generated by NW Developer Studio for use inside Portal components acting as a web service consumer. The problem is that the code generated includes a namespace prefix for each element in the body of the message, but XI doesn't like the namespace prefixes and throws back a DeliveryException.
    The SOAP message created by the generated NWDS code is:
    <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wn3="http://www.w3.org/1999/XMLSchema" xmlns:wn2="http://www.w3.org/2000/10/XMLSchema" xmlns:wn1="http://www.w3.org/2001/XMLSchema" xmlns:wn0="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:wn4="http://allieddomecq.com/poc" xmlns:tns="http://allieddomecq.com/poc">
         <SOAP-ENV:Body>
              <wn4:PortalSOAP_MT_Request>
                   <wn4:CustomerIdentifier>0001000064</wn4:CustomerIdentifier>
                   <wn4:SalesOrganization>ES50</wn4:SalesOrganization>
                   <wn4:SystemIdentifier>R3D</wn4:SystemIdentifier>
              </wn4:PortalSOAP_MT_Request>
         </SOAP-ENV:Body>
    </SOAP-ENV:Envelope>
    The problem is the "wn4" prefixes on the CustomerIdentifier, SalesOrganization, and SystemIdentifier tags. When we send the soap request from XML Spy without the prefixes, the response comes back OK with the expected data.
    I've had a very good look around the generated code - the serializers for creating the soap request - but could not find what exactly might be changed to leave off the prefixes.
    Alternatively, is there something I could ask our XI consultant to do, to make his component accept the request with the redundant prefixes in the tags?
    Many thanks for any advice/help,
    Laura

    Hi Laura,
    you have to realize that the two documents
    <ns:CustomerRecord xmlns:ns="http://company.com">
    <ns:CustomerNumber> </ns:CustomerNumber>
    <ns:CustomerDetails> </ns:CustomerDetails>
    </ns:CustomerRecord>
    and
    <ns:CustomerRecord xmlns:ns="http://company.com">
    <CustomerNumber> </CustomerNumber>
    <CustomerDetails> </CustomerDetails>
    </ns:CustomerRecord>
    from an XMl point of view have totally fifferent structure. Thus, a mapping which is able to deal with the first structure will fail for the second and vice versa.
    Surely, both structures somehow can carry the same information, but they do this with different languages (Maybe you can compare this to the fact, that you may deliver the same information in English or in German language).
    When you model the structure in Integration Repository using datatypes and message types (what I think you did), you will always get a structure that looks like the second one. This is just a convention (like the convention that all information in this forum should be presented in English). When defining a message mapping for this structure it also relies on this fact and thus will not understand the other kind of document.
    External Definitions are more flexible. They are also able to understand structures that are modelled the other way. This greater flexibility is due to the fact that External Definitions were designed to understand structures that come from an external world where different conventionts might be used.
    To come to a conclusion: If the structure you have to deal with has been defined externally then it is not intended that you model it inside the Integration Builder using datatypes and message types. In this case the external source should provide a description of the message as XSD, WSDL, or DTD. You upload this as External Definition, and everything works fine.
    If you have designed the structure yourself, you can model it with datatypes and message types. But then you will always get a structure which looks like the second one. In this case you should make sure that all other participants in the game also stick to that structure. Then everything will be fine, too.
    Greetings Stephan

Maybe you are looking for

  • Search feature not working after upgrade to 11.2.0.1

    Hi, We have a RHEL Linux 64 bit environment wherein we were using 11.1.0.7 database. We upgraded our environment from 11.1.0.7 to 11.2.0.1 successfully. No invalid objects reported and all the components under dba_registry shows as VALID. The upgrade

  • Autoshut not working

    using oel5.7 and 11gr2 i am using the following script to startup and shutdown automatically ORACLE_HOME=/home/oracle/product/10.1.0/Db_1 ORA_OWNER=oracle case “$1″ in ’start’) #If the system is starting, then … su – $ORA_OWNER -c “$ORACLE_HOME/bin/l

  • How do you turn off the display duplicates in my itunes music library

    i accidentally turned the display duplicates on. there is'nt any option to turn this feature off

  • Email future in owb

    Hello, We are using oracle11g database and owb is ETL tool. How do we configure email facility in owb? In the workflow, i created EMAIL flow after one mapping. I want to send email when the mapping is successful. I updated the below properties. BCC A

  • No matter what I get an Error PLEASE HELP

    Ok I have and iPhone 4 I am trying to fix and have literally tried everything and no matter what I have tried nothing seems to work. Please help I will list thing's I've done. My iPhone is in Loop mode only when I plug it in to wall or computer or el