ABAP XML/SOAP/MIME

I would like to get suggestion for the following scenario:
I am trying to create a XML file from SAP.
This XML need to be wrapped inside SOAP.
SOAP comprises of ENVELOPE, HEADER and BODY.
I am able to achieve all the above with no issues.
Finally the generated SOAP message need to be then wrapped in MIME Format.
The text for MIME should be similar to this:
Message-ID:<some text>
MIME-Version: 1.0
Content-Type: multipart/etc; boundary="123"
--=123 (MIME boundary)
content-Type:
contect-transfer-encoding:
content-ID:
Note: The above bolded MIME lines should be part of the XML file.
<?xml version="1.0" encoding="UTF-8" ?>
<SOAP envelope>
  <SOAP Header>-----
  </SOAP Header>
  <SOAP Body>
     All XML tags inside this body
  </SOAP BODY>
</SOAP envelope>
*=123 (End of MIME Boundary)
Using create_simple_element, all the SOAP and XML tags are created successfully.
What would I need to use to insert the MIME texts in bold from above to make it part of the XML file?
If any of you have done something similar to this, could you please share this with me? If you can point me to an example it will be great too.
Thanks,
Raj
Edited by: Rajesh Chathapuram on Oct 26, 2009 7:16 PM

I have resolved this.
Just had to use a normal transfer (using dataset) to the file hardcoding all MIME related lines.

Similar Messages

  • Create XML file from ABAP with SOAP Details

    Hi,
    I am new to XML and I am not familiar with JAVA or Web Service. I have searched in SDN and googled for a sample program for creating XML document from ABAP with SOAP details. Unfortunately I couldn't find anything.
    I have a requirement for creating an XML file from ABAP with SOAP details. I have the data in the internal table. There is a Schema which the client provided and the file generated from SAP should be validating against that Schema. Schema contains SOAP details like Envelope, Header & Body.
    My question is can I generate the XML file using CALL TRANSFORMATION in SAP with the SOAP details?
    I have tried to create Transformation (Transaction XSLT_TOOL) in SAP with below code. Also in CALL transformation I am not able to change the encoding to UTF-8. It's always show UTF-16.
    <xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:sap="http://www.sap.com/sapxsl" version="1.0">
      <xsl:template match="/">
        <SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
          <SOAP:Header>
            <CUNS:HeaderInfo>
              <CUNS:InterfaceTypeId>10006</InterfaceTypeId>
              <CUNS:BusinessPartnerID>11223344</BusinessPartnerID>
              <CUNS:SchemaVersion>1.0</SchemaVersion>
              <CUNS:DateTime>sy-datum</DateTime>
            </CUNS:HeaderInfo>
          </SOAP:Header>
          <SOAP:Body>
            <xsl:copy-of select="*"/>
          </SOAP:Body>
        </SOAP:Envelope>
      </xsl:template>
    </xsl:transform>
    In ABAP program, I have written below code for calling above Transformation.
      call transformation ('Z_ID')
           source tab = im_t_output[]
           result xml xml_out.
      call function 'SCMS_STRING_TO_FTEXT'
        exporting
          text      = xml_out
        tables
          ftext_tab = ex_t_xml_data.
    Please help me how to generate XML file with SOAP details from ABAP. If anybody have a sample program, please share with me.
    Is there any easy way to create the XML file in CALL Transformation. Please help.
    Thanks

    Try ABAP forum, as it seems not to be PI related.

  • Consume web service in ABAP with SOAP header

    I'm trying to call a SalesForce Web Service from ABAP.
    After the login I use the WS_HEADER to pass header information.
      TRY.
    Additional Header:
          CONCATENATE
          '<soap:Header>'
          '<s1:SessionHeader>'
          '<s1:sessionId>' login_output-result-session_id '</s1:sessionId>'
          '</s1:SessionHeader>'
          '</soap:Header>' INTO l_string.
    convert to xstring
          l_xstring = cl_proxy_service=>cstring2xstring( l_string ).
          ws_header ?= obj_add->get_protocol('IF_WSPROTOCOL_WS_HEADER').
          IF NOT l_string IS INITIAL.
    create iXML DOM document from XML xstring
            CALL FUNCTION 'SDIXML_XML_TO_DOM'
              EXPORTING
                xml           = l_xstring
              IMPORTING
                document      = xml_document
              EXCEPTIONS
                invalid_input = 1
                OTHERS        = 2.
            IF sy-subrc = 0 AND NOT xml_document IS INITIAL.
              xml_root = xml_document->get_root_element( ).
              xml_element ?= xml_root->get_first_child( ).
    add header element by element to SOAP header
              WHILE NOT xml_element IS INITIAL.
                name = xml_element->get_name( ).
                namespace = xml_element->get_namespace_uri( ).
                namespace = 'urn:partner.soap.sforce.com'."xml_element->get_namespace_uri( ).
                IF NOT xml_element IS INITIAL.
                ENDIF.
    get WS_HEADER protocol
                ws_header->set_request_header(
                name = name
                namespace = namespace
                dom = xml_element ).
                xml_element ?= xml_element->get_next( ).
              ENDWHILE.
            ENDIF.
          ENDIF.
        CATCH cx_ai_system_fault .
      ENDTRY.
    I get the following exception: CX_SXML_PARSE_ERROR
    I guess the error has to do with the wrong description of the additional header.
    In soapUI the header looks like that:
       <soapenv:Header>
          <urn:SessionHeader>
             <urn:sessionId>1234567890</urn:sessionId>
          </urn:SessionHeader>
       </soapenv:Header>
    Is there somebody who knows how I should "translate" this to ABAP?
    Thanks,
    Daniel

    Hi Jelena
    Thanks for your answer.
    I've already created the proxy.
    The question is how or where I get the correct format for the header of this string in ABAP:
    CONCATENATE
    '<soap:Header>'
    '<s1:SessionHeader>'
    '<s1:sessionId>' login_output-result-session_id '</s1:sessionId>'
    '</s1:SessionHeader>'
    '</soap:Header>' INTO l_string.
    This example is wrong. I get the following error: CX_SXML_PARSE_ERROR
    As I mentioned before in soapUI the header looks like that:
    <soapenv:Header>
    <urn:SessionHeader>
    <urn:sessionId>1234567890</urn:sessionId>
    </urn:SessionHeader>
    </soapenv:Header>
    Daniel

  • Failed to serialize interface javax.xml.soap.SOAPElementweblogic.xml.schema

    I have generated my Web Service Client Control Class based on WSDL file provided by Web Service Provider using JAX-RPC in "Oracle Workshop for WebLogic version 10.3".
    I am using Web Service Client Control class in WebLogic Portal portlet backing class to invoke Web Service. But while invoking Web Service, I am getting following error:
    Caused by: java.rmi.RemoteException: Failed to invoke; nested exception is:
    javax.xml.soap.SOAPException: failed to serialize interface javax.xml.soap.SOAPElementweblogic.xml.schema.binding.SerializationException: mapping lookup failure. class=interface javax.xml.soap.SOAPElement class context=TypedClassContext{schemaType=['http://xyz.com/abc/UpdateSR']:updateSRRequest}
    Here is the code of my Portlet Backing class where I am using Service Control to invoke Web Service:
    URL webServiceUrl = new URL(webServiceLocation);
    ServiceFactory serviceFactory = ServiceFactory.newInstance();
    QName qName = new QName(nameSpaceURI, serviceName);
    Service siebelService = serviceFactory.createService(webServiceUrl, qName);
    updateSRServiceControl siebelServiceProxy = (updateSRServiceControl)siebelService.getPort(qName, updateSRServiceControl.class);
    UpdateSRResponse updateSRResponse = siebelServiceProxy.updateSR(updateSRRequest);
    Please let me know if more information required.
    I appreciate for help.
    Thanks in advance.
    Regards
    Neeraj

    I have generated my Web Service Client Control Class based on WSDL file provided by Web Service Provider using JAX-RPC in "Oracle Workshop for WebLogic version 10.3".
    I am using Web Service Client Control class in WebLogic Portal portlet backing class to invoke Web Service. But while invoking Web Service, I am getting following error:
    Caused by: java.rmi.RemoteException: Failed to invoke; nested exception is:
    javax.xml.soap.SOAPException: failed to serialize interface javax.xml.soap.SOAPElementweblogic.xml.schema.binding.SerializationException: mapping lookup failure. class=interface javax.xml.soap.SOAPElement class context=TypedClassContext{schemaType=['http://xyz.com/abc/UpdateSR']:updateSRRequest}
    Here is the code of my Portlet Backing class where I am using Service Control to invoke Web Service:
    URL webServiceUrl = new URL(webServiceLocation);
    ServiceFactory serviceFactory = ServiceFactory.newInstance();
    QName qName = new QName(nameSpaceURI, serviceName);
    Service siebelService = serviceFactory.createService(webServiceUrl, qName);
    updateSRServiceControl siebelServiceProxy = (updateSRServiceControl)siebelService.getPort(qName, updateSRServiceControl.class);
    UpdateSRResponse updateSRResponse = siebelServiceProxy.updateSR(updateSRRequest);
    Please let me know if more information required.
    I appreciate for help.
    Thanks in advance.
    Regards
    Neeraj

  • Exception on JaxRpc invoke: HTTP transport error: javax.xml.soap.SOAPExcept

    Hi all,
    I am getting below error while invoking Siebel web service from BPEL service,
    <fault>
    -<remoteFault xmlns="http://schemas.oracle.com/bpel/extension">
    -<part name="summary">
    <summary>
    exception on JaxRpc invoke: HTTP transport error: javax.xml.soap.SOAPException: java.security.PrivilegedActionException: oracle.j2ee.ws.saaj.ContentTypeException: Not a valid SOAP Content-Type: text/html; charset=UTF-8
    </summary>
    </part>
    </remoteFault>
    </fault
    Please help me to resolve this issue.
    Thanks,
    Santosh M E

    Resolved, I was invoking an external Web service which is an Asynchronous 2 way.
    Didn't capture the reply back from the Async service.

  • Javax.xml.soap.SOAPException: Message send failed: Connection timed out

    Hi,
    where can i adjust the timeout for:
    exception on JaxRpc invoke: HTTP transport error: javax.xml.soap.SOAPException: java.security.PrivilegedActionException: javax.xml.soap.SOAPException: Message send failed: Connection timed out: connect
    The webservice needs 5min to return a message....
    I found a duplicate of this on thread:
    error initiating a test instance
    But no answer
    Message was edited by:
    HEWizard

    I found http://download-uk.oracle.com/docs/cd/B31017_01/integrate.1013/b28981/events.htm#BABGGADB
    Setting Timeouts for Synchronous Processes
    For synchronous processes that connect to a remote database, you must increase the syncMaxWaitTime timeout property in the SOA_Oracle_Home\bpel\domains\default\config\domain.xml file:
    <property id="syncMaxWaitTime">
    <name>Delivery result receiver maximum wait time</name>
    <value>60000000</value>
    <comment>
    <![CDATA[The maximum time the process result receiver will wait for a
    result before returning.  Results from asynchronous BPEL processes are
    retrieved synchronously via a receiver that will wait for a result from the
    container.
            <p/>
            The default value is 60 seconds.]]>
    </comment>
    </property>
    But this changes nothing...
    Is this value ignored?

  • How to get javax.xml.soap.SOAPMessage handler?

    Hello,
    I'm trying to evaluate WebLogic AS 10, especially evaluate it if it's possible to use our custom access control module build using JACC API inside it. The problem is, we're using SOAPMessage handler, but it seems WebLogic does not register any handler at all at least by default? That's at least what I see after example H:\bea\wlserver_10.0\samples\server\examples\src\examples\webservices\jaxws\java2wsdl\SimpleEjbImpl.java
    modification:
    public String sayHello(String s) throws SystemException {
    System.err.println("CALL sayHello: " + s);
    Object obj = null;
    try {
    System.err.println("registered handlers: " + PolicyContext.getHandlerKeys());
    obj = PolicyContext.getContext("javax.xml.soap.SOAPMessage");
    } catch (PolicyContextException ex) {
    ex.printStackTrace();
    if (obj != null) {
    SOAPMessage msg = (SOAPMessage)obj;
    System.err.println("SOAP msg: " + msg);
    else
    System.err.println("This is not SOAP message!");
    other method code is unchanged. Anyway, when I run this example I see in example server console that there are no registered handlers and in such situation following call to PolicyContext to obtain SOAPMessage handler fails with the IllegalArgumentException: unknown handler
    My question is, what I have to do in order to setup WebLogic to use standard handlers like SOAPMessage handler, EJBArguments handler etc.?
    Thanks!
    Karel

    Hello,
    it seems I've found the reason myself. At least WebLogic does not seems to support JACC by default and it needs to be switched on manually.
    Thanks,
    Karel

  • BPEL invoke ESB fails with javax.xml.soap.SOAPException: Bad response: 404

    I work with SOA 10.1.3.3 (Patched).
    When I call an ESB Routing Service from BPEL, are generated an exception as follow:
    <messages><input><WBPM_IKSelectDatiTx_in><part xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="WBPM_DASelectDatiTxSelect_pn_prog_tx_inparameters"><WBPM_DASelectDatiTxSelect_pn_prog_txInputParameters xmlns="http://xmlns.oracle.com/pcbpel/adapter/db/top/WBPMDASelectDatiTx">
    <pn_prog_tx>3</pn_prog_tx>
    </WBPM_DASelectDatiTxSelect_pn_prog_txInputParameters>
    </part></WBPM_IKSelectDatiTx_in></input><fault><remoteFault xmlns="http://schemas.oracle.com/bpel/extension"><part name="summary"><summary>exception on JaxRpc invoke: HTTP transport error: javax.xml.soap.SOAPException: java.security.PrivilegedActionException: javax.xml.soap.SOAPException: Bad response: 404 Not Found</summary>
    </part></remoteFault></fault></messages>
    I've already read the metalink note 427452.1 and I tried the 2 way indicated to solve this problem. But the problem persist.
    In the ESB console the Web Services considered above:
    WSDL URL http://wise-svr1.wise.com:7777/esb/slide/ESB_Projects/AppWBPMCicloPassivo_ESB_WBPMCicloPassivo/WBPM
    URI endpoint SOAP http://wise-svr1.wise.com:7777/event/DefaultSystem/WBPM_DASelectDatiTx
    When I click on WSDL URL explorer open an XML file
    When I click on URI endpoint SOAP explorer result "Page not Found"
    Thanks in advance
    Umberto

    Hi,
    Your problem is with the esb service since calling the endpoint in a browser should result in a test interface for the esb service. Do you have any errors in the logfiles after deploying or calling the endpoint? ($ORACLE_HOME\j2ee\oc4j_soa\log\oc4j_soa_default_group_1\oc4j\log.xml
    Kind Regards,
    Andre

  • Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/soap/S

    Hi,
    I have created a class JaxmClient.java. When I compile the class with appropriate jar files assigned to -classpath it compiles successfully with no errors. But when I run the classe "java JaxmClient" it produces the following exception:
    Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/soap/SOAPElement
    Can someone help me I am knew to this technology.
    Thanks in advance

    I tried to use in my execution all the jar files that I used for compilation.
    java -cp jaxm-jar; etc.jar Request
    but it still gives me this execption
    Exception in thread "main" java.lang.NoClassDefFoundError: Request
    I am in the right directory where is the Request.class file is and it is present in this directory....
    Thanks appreciate your help...

  • Java.security.PrivilegedActionException: javax.xml.soap.SOAPException: Unab

    Hi
    I deployed an ESB service.
    I am trying to test it from Server Enterprise Manager, Webservices feature.
    I wrapped up my original message with SOAP 1.1 and 1.2 specifications.
    When I invoke the service, I am getting
    java.security.PrivilegedActionException: javax.xml.soap.SOAPException: Unable to get header stream in saveChanges error.
    Any idea how to get rid of that ?
    Thanks
    Praveen

    The current version of ESB does not support SOAP 1.2. You need to make sure your message contains the correct SOAP 1.1 namespace so ESB uses the correct SOAP version:
    SOAP 1.1: http://schemas.xmlsoap.org/soap/envelope/
    SOAP 1.2: http://www.w3.org/2003/05/soap-envelope
    Kind Regards,
    Andre Jochems

  • Javax.xml.soap.SOAPException in Fusion Order Demo Application

    Hi,
    I setup the Oracle Fusion Middleware. I also deployed the Oracle Fusion Order Demo Application in the soa_server. I placed the order in the store front web for the price of 3000. The Store font Service initiates the call to webservice (OrderBookingService) and aproved the order using BAM worklist application and then I found the below error in the soa_server_diagnostic log file.
    =====================================================================================================================================
    2011-01-14T11:17:27.525+08:00] [soa_server1] [WARNING] [] [oracle.bam.adapter.adc.soap.DOOperationsDispatch] [tid: BatchProcessorThread(0)] [userId: <anonymous>] [ecid: 0000Iq2VyNWDCgWFLzuHOA1DBcDA000CjD,1:30958] [dcid: b6be438a400b4064:-27d42103:12d7db2014a:-7ffc-0000000000001b7c] Error in batch webservice[[
    javax.xml.ws.WebServiceException: javax.xml.soap.SOAPException: javax.xml.soap.SOAPException: Message send failed: Connection refused: connect
         at oracle.j2ee.ws.client.jaxws.DispatchImpl.invoke(DispatchImpl.java:784)
         at oracle.j2ee.ws.client.jaxws.OracleDispatchImpl.synchronousInvocationWithRetry(OracleDispatchImpl.java:234)
         at oracle.j2ee.ws.client.jaxws.OracleDispatchImpl.invoke(OracleDispatchImpl.java:105)
         at oracle.bam.adapter.adc.soap.DOOperationsDispatch.batch(DOOperationsDispatch.java:103)
         at oracle.bam.adapter.adc.soap.SOAPBatch.flush(SOAPBatch.java:107)
         at oracle.bam.common.batching.BatchProcessor.run(BatchProcessor.java:1149)
         at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:442)
         at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
         at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:207)
         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
         at java.lang.Thread.run(Thread.java:619)
    Caused by: javax.xml.soap.SOAPException: javax.xml.soap.SOAPException: Message send failed: Connection refused: connect
         at oracle.j2ee.ws.saaj.client.p2p.HttpSOAPConnection.call2(HttpSOAPConnection.java:227)
         at oracle.j2ee.ws.common.transport.HttpTransport.transmit(HttpTransport.java:75)
         at oracle.j2ee.ws.common.async.MessageSender.call(MessageSender.java:64)
         at oracle.j2ee.ws.common.async.Transmitter.transmitSync(Transmitter.java:134)
         at oracle.j2ee.ws.common.async.Transmitter.transmit(Transmitter.java:90)
         at oracle.j2ee.ws.common.async.RequestorImpl.transmit(RequestorImpl.java:275)
         at oracle.j2ee.ws.common.async.RequestorImpl.invoke(RequestorImpl.java:95)
         at oracle.j2ee.ws.client.jaxws.DispatchImpl.invoke(DispatchImpl.java:741)
         ... 10 more
    Caused by: javax.xml.soap.SOAPException: Message send failed: Connection refused: connect
         at oracle.j2ee.ws.saaj.client.p2p.HttpSOAPConnection.post2(HttpSOAPConnection.java:516)
         at oracle.j2ee.ws.saaj.client.p2p.HttpSOAPConnection$PriviledgedPost.run(HttpSOAPConnection.java:1232)
         at oracle.j2ee.ws.saaj.client.p2p.HttpSOAPConnection.call2(HttpSOAPConnection.java:225)
         ... 17 more
    Caused by: java.net.ConnectException: Connection refused: connect
         at java.net.PlainSocketImpl.socketConnect(Native Method)
         at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
         at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
         at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
         at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
         at java.net.Socket.connect(Socket.java:525)
         at java.net.Socket.connect(Socket.java:475)
         at java.net.Socket.<init>(Socket.java:372)
         at java.net.Socket.<init>(Socket.java:215)
         at javax.net.DefaultSocketFactory.createSocket(SocketFactory.java:212)
         at HTTPClient.HTTPConnection.getSocket(HTTPConnection.java:3606)
         at HTTPClient.HTTPConnection.doConnect(HTTPConnection.java:4364)
         at HTTPClient.HTTPConnection.sendRequest(HTTPConnection.java:3358)
         at HTTPClient.HttpOutputStream.closeImpl(HttpOutputStream.java:461)
         at HTTPClient.HttpOutputStream.access$000(HttpOutputStream.java:99)
         at HTTPClient.HttpOutputStream$1.run(HttpOutputStream.java:417)
         at HTTPClient.HttpClientConfiguration.doAction(HttpClientConfiguration.java:666)
         at HTTPClient.HttpOutputStream.close(HttpOutputStream.java:415)
         at oracle.j2ee.ws.saaj.client.p2p.HttpSOAPConnection.sendMessage(HttpSOAPConnection.java:1045)
         at oracle.j2ee.ws.saaj.client.p2p.HttpSOAPConnection.post2(HttpSOAPConnection.java:491)
         at oracle.j2ee.ws.saaj.client.p2p.HttpSOAPConnection$PriviledgedPost.run(HttpSOAPConnection.java:1232)
         at oracle.j2ee.ws.saaj.client.p2p.HttpSOAPConnection.call2(HttpSOAPConnection.java:225)
         at oracle.j2ee.ws.common.transport.HttpTransport.transmit(HttpTransport.java:75)
         at oracle.j2ee.ws.common.async.MessageSender.call(MessageSender.java:64)
         at oracle.j2ee.ws.common.async.Transmitter.transmitSync(Transmitter.java:134)
         at oracle.j2ee.ws.common.async.Transmitter.transmit(Transmitter.java:90)
         at oracle.j2ee.ws.common.async.RequestorImpl.transmit(RequestorImpl.java:273)
         at oracle.j2ee.ws.common.async.RequestorImpl.invoke(RequestorImpl.java:94)
         at oracle.j2ee.ws.client.jaxws.DispatchImpl.invoke(DispatchImpl.java:741)
         at oracle.j2ee.ws.client.jaxws.OracleDispatchImpl.synchronousInvocationWithRetry(OracleDispatchImpl.java:234)
         at oracle.j2ee.ws.client.jaxws.OracleDispatchImpl.invoke(OracleDispatchImpl.java:105)
         at oracle.bam.adapter.adc.soap.DOOperationsDispatch.batch(DOOperationsDispatch.java:103)
         at oracle.bam.adapter.adc.soap.SOAPBatch.flush(SOAPBatch.java:106)
         at oracle.bam.common.batching.BatchProcessor.run(BatchProcessor.java:1149)
         at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
         at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
         at java.util.concurrent.FutureTask.run(FutureTask.java:138)
         at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:98)
         at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:207)
         at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
    =====================================================================================================================================
    Edited by: Raju Ilayaraja on Jan 17, 2011 12:18 AM

    Hi,
    BookingOrderProcess is working correctly. I am getting the below error periodically.It looks like some batch process is throwing the communication error.
    [2011-01-17T19:16:26.231+08:00] [soa_server1] [WARNING] [] [oracle.bam.adapter.adc.soap.DOOperationsDispatch] [tid: BatchProcessorThread(0)] [userId: <anonymous>] [ecid: 0000Iq2VyNWDCgWFLzuHOA1DBcDA000CjD,1:30958] [dcid: b6be438a400b4064:-27d42103:12d7db2014a:-7ffc-0000000000001b7c] Error in batch webservice[[
    javax.xml.ws.WebServiceException: javax.xml.soap.SOAPException: javax.xml.soap.SOAPException: Message send failed: Connection refused: connect
         at oracle.j2ee.ws.client.jaxws.DispatchImpl.invoke(DispatchImpl.java:784)
         at oracle.j2ee.ws.client.jaxws.OracleDispatchImpl.synchronousInvocationWithRetry(OracleDispatchImpl.java:234)
         at oracle.j2ee.ws.client.jaxws.OracleDispatchImpl.invoke(OracleDispatchImpl.java:105)
         at oracle.bam.adapter.adc.soap.DOOperationsDispatch.batch(DOOperationsDispatch.java:103)
         at oracle.bam.adapter.adc.soap.SOAPBatch.flush(SOAPBatch.java:107)
         at oracle.bam.common.batching.BatchProcessor.run(BatchProcessor.java:1149)
         at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:442)
         at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
         at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:207)
         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
         at java.lang.Thread.run(Thread.java:619)
    Caused by: javax.xml.soap.SOAPException: javax.xml.soap.SOAPException: Message send failed: Connection refused: connect
         at oracle.j2ee.ws.saaj.client.p2p.HttpSOAPConnection.call2(HttpSOAPConnection.java:227)
         at oracle.j2ee.ws.common.transport.HttpTransport.transmit(HttpTransport.java:75)
         at oracle.j2ee.ws.common.async.MessageSender.call(MessageSender.java:64)
         at oracle.j2ee.ws.common.async.Transmitter.transmitSync(Transmitter.java:134)
         at oracle.j2ee.ws.common.async.Transmitter.transmit(Transmitter.java:90)
         at oracle.j2ee.ws.common.async.RequestorImpl.transmit(RequestorImpl.java:275)
         at oracle.j2ee.ws.common.async.RequestorImpl.invoke(RequestorImpl.java:95)
         at oracle.j2ee.ws.client.jaxws.DispatchImpl.invoke(DispatchImpl.java:741)
         ... 10 more
    Caused by: javax.xml.soap.SOAPException: Message send failed: Connection refused: connect
         at oracle.j2ee.ws.saaj.client.p2p.HttpSOAPConnection.post2(HttpSOAPConnection.java:516)
         at oracle.j2ee.ws.saaj.client.p2p.HttpSOAPConnection$PriviledgedPost.run(HttpSOAPConnection.java:1232)
         at oracle.j2ee.ws.saaj.client.p2p.HttpSOAPConnection.call2(HttpSOAPConnection.java:225)
         ... 17 more
    Caused by: java.net.ConnectException: Connection refused: connect
         at java.net.PlainSocketImpl.socketConnect(Native Method)
         at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
         at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
         at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
    Regards,
    Ilaya

  • HTTP transport error: javax.xml.soap.SOAPException: java.security.PrivilegedActionException: javax.xml.soap.SOAPException: Message send failed: String index out of range: -7

    All -
    I'm new to consuming web services in JDeveloper. I'm using Oracle JDEV 10.1.3.3/OC4J.  I'm using this version since it is compatible with Oracle EBS 12.1.3.  My intent is to pull data from our third party recruitment app (Success Factors) and load that data into Oracle HRIS.  I'm already doing this through a .NET application.  I'm converting it to be a Java Concurrent Program in EBS.  The code listed below is a stub call to verify I'm on the right track. I created a JDeveloper Web Services proxy project.  I'm testing it locally on my windows desktop.  When I'm able to consume the service successfully, then I'll think about moving it to the EBS server.
    I'm getting the following error when I invoke the following service:
    HTTP transport error: javax.xml.soap.SOAPException: java.security.PrivilegedActionException: javax.xml.soap.SOAPException: Message send failed: String index out of range: -7
    End point is: https://api4.successfactors.com/sfapi/v1/soap?wsdl
    Any help/assistance would be much appreciated. 
    Below is my code and output of my test:
    package emsc.oracle.apps.emscper.sfapi.proxy;
    import HTTPClient.HTTPConnection;
    import emsc.oracle.apps.emscper.sfapi.proxy.types.sfobject_sfapi_successfactors_com.IsValidSession;
    import emsc.oracle.apps.emscper.sfapi.proxy.types.sfobject_sfapi_successfactors_com.IsValidSessionResponse;
    import emsc.oracle.apps.emscper.sfapi.proxy.types.sfobject_sfapi_successfactors_com.Login;
    import emsc.oracle.apps.emscper.sfapi.proxy.types.sfobject_sfapi_successfactors_com.LoginResponse;
    import emsc.oracle.apps.emscper.sfapi.proxy.types.sfobject_sfapi_successfactors_com.LoginResult;
    import emsc.oracle.apps.emscper.sfapi.proxy.types.sfobject_sfapi_successfactors_com.Logout;
    import emsc.oracle.apps.emscper.sfapi.proxy.types.sfobject_sfapi_successfactors_com.LogoutResponse;
    import emsc.oracle.apps.emscper.sfapi.proxy.types.sfobject_sfapi_successfactors_com.SFCredential;
    import emsc.oracle.apps.emscper.sfapi.proxy.types.sfobject_sfapi_successfactors_com.SFParameter;
    import emsc.oracle.apps.emscper.sfapi.proxy.types.sfobject_sfapi_successfactors_com.Error;
    import java.io.File;
    import javax.xml.rpc.ServiceFactory;
    import java.util.ArrayList;
    import java.util.List;
    import java.util.Date;
    import javax.xml.ws.BindingProvider;
    import javax.xml.soap.SOAPException;
    import java.util.Map;
    import oracle.security.ssl.OracleSSLCredential;
    public class SFAPITest {
        // Declare members:      
        private String companyId;
        private String userName;
        private String password;
        private String developerKey;
        private Date   effDt;
        private String greaterThanEffDt;
        private String lessThanEffDt;
        // Declare constants:      
        final static private String breakLine = "+---------------------------------------------------------------------------+";
        final static private String format    = "yyyy-mm-dd";      
        private enum ReqId {
            PrimaryReq(25),
            PrimaryReqCEO(26),
            EmCarePrimary(27),
            RTI(28),
            EmCareClinical(29);
            private int reqId; 
            private ReqId() {
            private ReqId(int value) {
                reqId = value;
            public int getReqId() {
                return reqId;
        // Getters and Setters:  
        protected String getCompanyId() {
           return this.companyId;
        protected void setCompanyId(String value) {
           this.companyId = value;                 
        protected String getUserName() {
           return this.userName;
        protected void setUserName(String value) {
           this.userName = value;                 
        protected String getPassword() {
           return this.password;
        protected void setPassword(String value) {
           this.password = value;                 
        protected String getDeveloperKey() {
           return this.developerKey;
        protected void setDeveloperKey(String value) {
           this.developerKey = value;                 
        protected Date getEffDt() {
            return this.effDt;
        protected void setEffDt(Date value) {
            this.effDt = value;                 
        protected String getGreaterThanEffDt() {
           return this.greaterThanEffDt;
        protected void setGreaterThanEffDt(String value) {
           this.greaterThanEffDt = value;                 
        protected String getLessThanEffDt() {
           return this.lessThanEffDt;
        protected void setLessThanEffDt(String value) {
           this.lessThanEffDt = value;                 
        public void runProgram()
            SFAPIService mySFAPIService;
            String CompletionText = "";
            String effDtStr2 = null;
        /* Code your program logic here.
        * Use getJDBCConnection method to get the connection object for any
        * JDBC operations.
        * Use CpContext provided commit,rollback methods to commit/rollback
        * data base transactions.
        * Don't forget to release the connection before returning from this
        * method.
        /* Call setCompletion method to set the request completion status and
        * completion text.
        * Status values are ReqCompletion.NORMAL,ReqCompletion.WARNING,
        * ReqCompletion.ERROR.
        * Use Completion text message of length 240 characters. If it is more
        * than 240 then full string will appear in log file and truncated 240
        * characters will be used as request completion text.
        try
            ServiceFactory factory = ServiceFactory.newInstance();
            mySFAPIService = (emsc.oracle.apps.emscper.sfapi.proxy.SFAPIService)factory.loadService(emsc.oracle.apps.emscper.sfapi.proxy.SFAPIService.class);      
            SFAPI api = mySFAPIService.getSFAPI();
           /// SFAPI api = new SFAPI();
            //Map<String, Object> requestContext = ((BindingProvider) api).getRequestContext();
            //requestContext.put(BindingProvider.SESSION_MAINTAIN_PROPERTY, true);
            System.out.println("ServiceName => " + mySFAPIService.getServiceName().toString());
            System.out.println("End Point   => " + mySFAPIService.getServiceName().toString());
            System.out.println(breakLine);
            // Authentication: Login to SFAPI:
            SFCredential credential = new SFCredential();
            // Fake credentials being passed in for this post:   
            credential.setCompanyId("XXX");
            credential.setUsername("XXX");
            credential.setPassword("XXX");
            credential.setDeveloperKey("XXX");
            HTTPConnection httpsConnection = null;       
            OracleSSLCredential _credential = new OracleSSLCredential();      
            _credential.setWallet("\\\\\\C:\\Program Files\\Java\\jdk1.6.0_33\\jre\\lib\\security", "ParkEstes3");
            /*System.setProperty("javax.net.ssl.trustStore","C:\\\\\OraHome_1\\jdev\\jdevbin\\jdk\\jre\\lib\\security\\keystore");
            System.setProperty("javax.net.ssl.trustStorePassword","changeit");  
            System.out.println(System.getProperty("javax.net.ssl.trustStore"));*/
            // SFParameter: Define a generic SFParameter List.  This is a necessary parameter
            // to invoking calls in SFAPI:      
             /*System.setProperty("javax.net.ssl.keyStore",
             "file:\\\C:\\jdk1.4.1\\jre\\lib\\security\\client.keystore");
             System.setProperty("javax.net.ssl.keyStorePassword","welcome");         */
            /*  System.setProperty("oracle.net.wallet_location",
                          "(SOURCE=(METHOD=file)(METHOD_DATA=(DIRECTORY=\\\C:\Users\dparrish\Oracle\WALLETS)))");  // (2)                     */
            File kstore = new File("C:\\OraHome_1\\jdev\\jdevbin\\jdk\\jre\\lib\\security\\jssecacerts");
            boolean exists = kstore.exists();
            if (!exists) {
                System.out.println("Keystore does not exist");
            else {
                System.out.println("Keystore does exist");
            System.setProperty("javax.net.ssl.trustStore", kstore.getAbsolutePath());
            System.setProperty("javax.net.ssl.trustStorePassword", "changeit");
            //System.setProperty("proxySet", "false");
            //System.setProperty("http.proxyHost", "127.0.0.1");
            //System.setProperty("http.proxyPort", "8080");
            System.out.println(kstore.getAbsolutePath());
            List<SFParameter> lst = new ArrayList<SFParameter>();
            SFParameter param = new SFParameter();
            param.setName("");
            param.setValue("");
            lst.add(param);      
            SFParameter[] sfParam = lst.toArray(new SFParameter[lst.size()]);
            Login login = new Login();
            try {
                login.setCredential(credential);
                System.out.println("1");
                login.setParam(sfParam);
                System.out.println("2");
                LoginResponse loginResponse = new  LoginResponse();
                LoginResult loginResult = new LoginResult();
                try {
                     loginResponse = api.login(login);               
                catch (Exception e ) {
                    System.out.println(e.getMessage());
                System.out.println("3");
                try {               
                     loginResult = loginResponse.getResult();
                catch (Exception e ) {
                    System.out.println(e.getMessage());
                System.out.println("4");
                IsValidSession vs = new IsValidSession();                  
                IsValidSessionResponse isValidSessionResponse = api.isValidSession(vs);
                System.out.println("5");
                if (isValidSessionResponse.isResult()) {
                     System.out.println("Session is valid");
                     System.out.println("Result => " + loginResult.getSessionId());
                     System.out.println(breakLine);              
                    Logout logout = new Logout();
                    LogoutResponse logoutResponse = api.logout(logout);
                    if (logoutResponse.isResult()) {
                         System.out.println("Logout of SFAPI Successful");
                    else {
                        System.out.println("Logout of SFAPI Unsuccessful");
                else {
                     System.out.println("Session is invalid");
                    List<Error> errors = new ArrayList<Error>();
                    for (int i = 0; i < loginResult.getError().length;  i++) {
                        errors.add(loginResult.getError()[i]);
                    for (int i = 0; i < errors.size(); i++) {
                         System.out.println("Error Indice   => " + i);
                         System.out.println("Error Code:    => " + errors.get(i).getErrorCode());
                         System.out.println("Error Message: => " + errors.get(i).getErrorMessage());
                         System.out.println(breakLine);                                                          
                    } // end for loop of SFObject errors
                } // end InvalidSession
            catch (Exception e)
                 System.out.println("Session Credential Exception");
                 System.out.println("Exception => " + e.getMessage());
                 System.out.println(breakLine);                   
        catch (Exception e)
            System.out.println("Parameter List Exception");
            System.out.println("Exception => " + e.getMessage());
            System.out.println(breakLine);
        }   // end runProgram
        // Constructor:
        public SFAPITest()  {
        } // end constructor
        public static void main (String args[]) {
            try
                SFAPITest test = new SFAPITest();        
                test.runProgram();
            catch (Exception e) {
                System.out.println("main exception => " + e.getMessage());
    } // SFAPITest
    Here is the output with trace:
    WARNING: Unable to connect to URL: https://api4.successfactors.com:443/sfapi/v1/soap due to java.security.PrivilegedActionException: javax.xml.soap.SOAPException: Message send failed: String index out of range: -7
    Session Credential Exception
    Exception => ; nested exception is:
        HTTP transport error: javax.xml.soap.SOAPException: java.security.PrivilegedActionException: javax.xml.soap.SOAPException: Message send failed: String index out of range: -7
    +---------------------------------------------------------------------------+
    Process exited with exit code 0.

    The other end is throwing back a programming error.
    That might be because you are sending incorrect data and the other end fails to validate it.
    You might be able to guess based on your C# code.  But, since you are using soap one generic solution is available to you.
    - Get an http proxy interceptor like wireshark.
    - Run it while your C# app runs, collect the http requests from that.
    - Run it while running your java code, collect the http requests from that.
    Compare the two.

  • Error:Can not found "javax/xml/soap"

    Hi:
    I'm fairly new to Java development and I'm trying to write a wrapper class that will access a webservice. The problem I'm running into is that I keep getting this error message when I try to compile my class:
    ./STest.java:1: error:Can not found "javax/xml/soap" [JLS 7.5.2, 7.6]
    I've installed the jwsdb-1_2 and I think mh env is set up correctly.
    The above error message is generated by:
    import javax.xml.soap.*;
    Please help!

    I've searched every jar file and it doesn't seem as though any of them have the soap stuff....
    This page, http://java.sun.com/webservices/docs/1.0/api/overview-summary.html, seems to say that I need the Web Services Developer Pack, which is was the wsdp is....

  • Org.w3c.dom.Element to javax.xml.soap.SOAPElement

    I have a org.w3c.dom.Element that I want to insert into an existing SOAPBody using
    public SOAPElement addChildElement(SOAPElement element). How can I turn the org.w3c.dom.Element
    into a javax.xml.soap.SOAPElement so that I can do that?
    Steve Watson

    Hi Steve,
    Here's a code segment that may be of some value.
    Bruce
         public SOAPElement populateSOAPElement(SOAPEnvelope envelope,
    SOAPElement element, Element sndElement) throws SOAPException{
    int i, j;
    NamedNodeMap map;
    Node node;
    NodeList list;
    SOAPElement subElement;
    //populate attributes
    map = sndElement.getAttributes();
    for (j = 0; j < map.getLength(); j ++)
    node = map.item(j);
    element.addAttribute(envelope.createName(node.getNodeName()),
    sndElement.getAttribute(node.getNodeName()));
    //populate the element value and subElements
    list = sndElement.getChildNodes();
    for (j = 0; j < list.getLength(); j ++)
    short type = list.item(j).getNodeType();
    String typeString = "";
    if (list.item(j).getNodeType() == 3)
    element.addTextNode(list.item(j).getNodeValue());
    if(list.item(j).getNodeType() == 1)
    subElement =
    element.addChildElement(((Element)list.item(j)).getTagName());
    subElement = populateSOAPElement(envelope, subElement,
    (Element)list.item(j));
    return element;
    Steve wrote:
    >
    I have a org.w3c.dom.Element that I want to insert into an existing SOAPBody using
    public SOAPElement addChildElement(SOAPElement element). How can I turn the org.w3c.dom.Element
    into a javax.xml.soap.SOAPElement so that I can do that?
    Steve Watson

  • IDOC to XML SOAP Scenario

    Hi All,
    I want to implement IDOC to XML SOAP scenario for 3 different IDOC types.
    Should i implement it under same namespace or use different namespace for each IDOC to XML scenario.
    Thanks,
    Vishal

    Hi,
    depends on your requirement and your XML SOAP receiver
    there are no general rules
    Regards,
    Michal Krawczyk

Maybe you are looking for

  • Transfer Failed sending mail to GWIA

    In the process of migrating a GW8.0.3 system to SuSE. Two servers, one for primary domain and post office, and second for secondary domain and gwia. All went for the most part well. Issue with GWIA and sending mail to internet. It is receiving mail f

  • HR Authorization : Custom Authorization Object  for P_ORGIN

    Hi, I have created a Custom Authorization Object for HR named Z_ORIGIN (it has Personnel Subarea field BTRTL besides what's there in Auth. Object P_ORIGIN) and made it Check/Maintain for transaction PA30 in SU24. I can see the entries in the USOBT_C

  • V$SQLAREA AND HIGH RESOURCE QUERY IN EXADATA

    Hello everyone. I write for information regarding V$SQLAREA. On this view, it is possibile to check which queries consume more resources. I need to highlight the query with highest execution time, and highest use of disk resources. Respect to DISK_RE

  • Crystal Reports 11.5 in Windows 2008 R2-64 bit Server

    We have a few applications, which use the crystal reports 11.5. I have given the details of assembly reference given to application. Referenced assembly                                      Version CrystalDecisions.CrystalReports.Engine          11.5

  • MCAK - Create POD for newly added Platform element

    Hi, I am trying to create POD for newly maintained platform element ( ex: HyperV ). Data captured in POD :      PODName :     Plotform Element Type : vcenter / vcloud director / ec2 / openstack /etc      Virtualization Manager : (respective VM Manger