HTTP ReceiverCustomizer to edit XML

Hi
I am trying to edit the XML message coming into my HTTP adapter but I am getting a java.lang.StringIndexOutOfBoundsException error when trying to delete text. If I run the java on the same XML file outside of the adapter, it works fine, it just doesn't within it. Has anyone had similar issues or can suggest how to view the XML as the code is seeing it?
Cheers
Trevor

Am,
For testing purposes I use a <b>.htm</b> script as a Posting Tool to send XML messages to the XI server
You also need to create Configuration to accept the test message
1. Business Service (to represent the Posting Tool)
2. Receiver Determination (referencing the Sender Service) and
3. Interface Determination (referencing the Sender Service)
I am getting an error when providing the script code in this reply
So if you supply your email address I will send a copy of the script to you
Regards,
Mike

Similar Messages

  • Edit XML before receiving by Receiving HTTPS Receiver

    Hello
    I need to connect to target system using HTTPS and I have used a DTD given by the target system.
    The target system expects an HTTPS request in an XML format.
    This XML shall have a DOCTYPE comment immediately after first line of XML declaration.
    Ex:
    <?xml version="1.0"?>
    <!DOCTYPE method_name PUBLIC "-//method_path" "http://dtd.doamin_name.com/method_name.dtd">
    I used Message Mapping to acheive mapping and it failed while testing.
    The SXMB_MONI shows that the DOCTYPE is missing and it must be declared.
    Is there any way to change the XML message - add the DOCTYPE comment - before the message reaches the HTTPS Receiver?
    Please help.
    Thx
    Alkesh

    Hi Srinivas,
    This error occurs when the maximum duration of the connection is exceeded than the specified value.
    Check this forum:
    Error code 402:-ICM_HTTP_TIMEOUT in R/3
    Regards,
    Supriya.

  • HTTP POST Request with XML file in

    Hi @ all,
    I would like to send an HTTP Request with an XML File in the body to an SAP System
    I have the target URL and the a XML File.
    Now the question is. Is it possible to use something like the HTTP_POST FuBa to send an url post request with an xml file?
    If yes can anybody give me a hint?
    I have a php script which exactly do this coding. But to integrate it all in one system it is necessary to transform it into ABAP and call it there.
    // compose url and request and call send function
    function test($productID, $categoryID) {
         // create url
         $PIhost = "XXX.wdf.sap.corp";
         $PIport = "50080";
         $PIurl = "/sap/xi/adapter_plain";
         $PIurl .= "?sap-client=800";
         $PIurl .= "&service=XXX";
         $PIurl .= "&namespace=XXX";
         $PIurl .= "&interface=Frontend_Interface";
         $PIurl .= "&qos=EO";
         $PIurl .= "&sap-user=XXX";
         $PIurl .= "&sap-password=XXX";
         // create xml
         $request = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
         $request .="<n1:FrontendInbound_MessageType xmlns:n1=\"http://crmpiebay.com\">\n";
         $request .= "\t<FrontendInbound>\n";
         $request .= "\t\t<ProductName/>\n";
         $request .= "\t\t<ProductCategory>".$categoryID."</ProductCategory>\n";
         $request .= "\t\t<ProductID>".$productID."</ProductID>\n";
         $request .= "\t\t<MessageID/>\n";
         $request .= "\t</FrontendInbound>\n";
         $request .= "</n1:FrontendInbound_MessageType>";
         // send http request
         postToHost($PIhost, $PIport, $PIurl, $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"]."/".$_SERVER["PHP_SELF"], $request);
    // send post request to PI server
    function postToHost($host, $port, $path, $referer, $data_to_send) {
      $fp = fsockopen($host, $port);
      if($fp) {
           $res="";
           fputs($fp, "POST $path HTTP/1.1\r\n");
           fputs($fp, "Host: $host\r\n");
           fputs($fp, "Referer: $referer\r\n");
           fputs($fp, "Content-type: text/plain\r\n");
           fputs($fp, "Content-length: ". strlen($data_to_send) ."\r\n");
           fputs($fp, "Connection: close\r\n\r\n");
           fputs($fp, $data_to_send);
           while(!feof($fp)) {
               $res .= fgets($fp, 128);
           fclose($fp);
           return $res;
    Would be great if anybody could give me a hint how to solve such a HTTP Post request with XML body data.
    Thanks in advance.
    Chris
    Edited by: Christian Kuehne on Feb 26, 2009 4:32 PM

    hi friend could you please share your solution regarding this query if u got it already?

  • Editing XML File

    Any idea or url around for an example how to edit XML files
    with ASP.VB ?
    thanks fpr any reply
    Sebastian

    To modify an XML document obtain a DOM stucture of the XML file, select nodes with XPath expression, and modify nodes.
    http://otn.oracle.com/pub/notes/technote_domparser.html

  • Help required to edit xml document

    I am new to java and xml compatibility.I just had familiarised SAX parser.
    I now want to familiarse the technology to edit xml document from a java program(more precisely write to an xml file).I came to know about many methods - JAXP DOM method,JAXB api method - and is totally confused.
    Can any body give me guidance about these api's and suggest a method that
    i should follow?
    i repeat that my application will have to frequently edit xml files
    Thank you

    Hi,
    it's very easy to edit and create XML. See examples in docs: http://livedocs.adobe.com/flex/3/langref/XML.html#includeExamplesSummary
    There are many examples how to get attributes and other data.
    You also can set attributes the same way.
    If you have concrete questions, ask.

  • Editing XML Through NAL

    Hey All,
    I am having a lot of trouble editing XML files through the NAL. I was
    hoping to be able to do it easily using the text editor built into the
    NAL, but have had no success. Changing the file extension to txt doesn't
    help either. Pretty much everyhtng leads to crashing the NAL or buffer
    overruns. Any help would be greatly appreciated.
    Thanks,
    Matt

    On Wed, 07 Nov 2007 20:40:26 GMT, Matt wrote:
    > I am having a lot of trouble editing XML files through the NAL. I was
    > hoping to be able to do it easily using the text editor built into the
    > NAL, but have had no success. Changing the file extension to txt doesn't
    > help either. Pretty much everyhtng leads to crashing the NAL or buffer
    > overruns. Any help would be greatly appreciated.
    what do you mean with editing xml through NAL?
    do you mean an application objects which changes stuff in a text file?
    if yes, how big is the text file, are there any special characters, doesn
    the file contain the stuff you want to change more than once?
    Marcus Breiden
    If you are asked to email me information please remove the - in my e-mail
    address.
    The content of this mail is my private and personal opinion.
    http://www.didas.de

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

  • How can I edit XML results ?

    Hi,
    In the documentation I read about how to get the results of a query (in .xsql) as a XML-page using the XSQL Servlet. With forms I can insert data into the Database, but what about retrieving data from it and immediately edit and update it (combination of the two) ?
    What is the easiest way to achieve that ? I just want to update my data using XML as a data interchange format...
    thanks,
    Erik

    One of the difficulties would be locking
    your record.
    Without locking, it's just a matter of
    writing your XSL to enter data as a default
    value into text fields in a form.
    You could also use Transviewer Beans to
    create a Swing app to edit XML files.
    null

  • How to edit xml file particular value. and how to send xml file over ip address 192.168.2.10 using ftp

    how to edit xml file particular value. and how to send xml file over ip address 192.168.2.10 device using ftp through Ethernet

    Hello
    For using FTP function in LabVIEW, I recommend you to check this document: FTP Basics
    Also, take a look at FTP Browser.vi, which is available at the Example Finder.
    To edit a XML file, try to use VIs in XML palette. Maybe Write to XML.vi helps you.
    Post your current VI if possible.
    Regards
    Mondoni

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

  • Editing xml in java

    hello everybody,
    i'm trying to write a java application for editing xml documents.
    I know It is possible to use xsl stylesheets to transform xml documents but it is possible to display the result of the transformation process in java?
    I mean,
    I make the transformation XML --->XSL ---->but i don't want to view the output in a browser!! I want to view that in my java application !!
    Can i display this output in swing objects?? Can i modify this output??
    Thanks to all.

    I make the transformation XML --->XSL ---->but i don'tYou mean XML+XSLT=>XML
    want to view the output in a browser!! I want to view
    that in my java application !!
    Can i display this output in swing objects?? Can i
    modify this output??Here is an example for saxon:
    // I didn't compile or run this code, please refer to API documentation for more detail instructions.
    // Transformer factory.
    TransformerFactory transformerFactory = TransformerFactory.newInstance();
    // XML source file
    File source_file = new File("xml_file.xml");
    // output file
    File outputFile = new File( "output.out");
    // Transformation source
    Source source = new StreamSource(source_file);
    // Transformation result
    out = new java.io.FileOutputStream(outputFile);
    StreamResult result = new StreamResult(out);
    result.setSystemId(outputFile.toURI().toString());
    // Must be synchronized by factory, since factory isn't thread safe
    synchronized (transformerFactory) {
    // obtain a transformer
    transformer = transformerFactory.newTransformer(new StreamSource(new File("xslt_template.xsl")));
    // perform transformation
    transformer.transform(source, result);
    As you can see, you easely can redirect result to your Swing editor.
    If you don't want to bother about streams and so on, you can use this example to write the result into the file, and open the file in your editor.

  • Editing XML in Dreamweaver

    Can you view and edit XML documents in dreamweaver?

    Yes;
    "paul_carron" <[email protected]> wrote in
    message
    news:ev00cn$ila$[email protected]..
    > Can you view and edit XML documents in dreamweaver?

  • How to edit xml using jdom

    hi
    how to read and edit xml file using jdom, i tried using
    javax.xml.transform.*; // JAXP
    javax.xml.transform.dom.DOMSource; //
    i can read xml file . but iam not able to edit the xml file.
    how to achive this

    1. Select nodes to be modified with the JDom XPath class selectSingleNode and selectNodes methods.
    SAXBuilder saxBuilder=new SAXBuilder("org.apache.xerces.parsers.SAXParser");
    org.jdom.Document jdomDocument=saxBuilder.build(new File("c:/input.xml"));
    org.jdom.Element node= (org.jdom.Element)(XPath.selectSingleNode(jdomDocument,"/root/node"));
    2. Modify the node values with the Element class setter methods.
    3. Output document with the XMLOutputer class.

  • How to edit xml using AS3

    I want to edit xml file on run time dynamically using AS3
    Plzzzzzzzz if it possible send the tutorials links or sample script.

    Flash player 10 has support for accessing local system file. This can be done using the FileReference class. You can browse a loca file, rad it and then save it back. But at the time of saving, the user is prompted to choose a location for saving the file.
    Else you can use some server side technology with your app to read and write files.

  • Can you edit xml files in adobe contribute

    can you edit xml files in adobe contribute

    No, you can't even open them in recent versions of PSE.

Maybe you are looking for

  • CRM Office 2007 - Windows 7 problem

    Hello Experts, I need your help about something. When I try to attach a word document to a quotation, it seems like it's opening the document but closes back. I have done the activex settings of my web browser but it's still the same. It only happens

  • Slow Speed - Mis-Selling Story

    I join BT recently on Option 3 unlimited. Bit of a starting fiasco with wrong dates, two hubs arriving etc etc. Settled down and was getting 3.2Meg download on an 'up to' 8Meg line. Friend a couple of streets away gets just over 6Meg so called BT, fi

  • Problem when switching from https to http on Safari

    I am using a Safari browser and try to switch from https to http within the same web application. The Safari browser is configured so that on Safari->Preferences->Security the check box "Ask before sending a non-secure form to a secure website" is ch

  • Oracle VM support experiences?

    I've been "playing with" Oracle VM for a year or so, and we're getting serious about it now. We bought new servers, and a support contract, and I'm trying to get this thing into production. I have filed a couple of SR's, and it's too early to judge t

  • How can I delete my WebOS account?

    I would like to delete my online WebOS account from the PalmWS server - https://ps.palmws.com/palmcsext/console/pages/Logi​nPage.iface but can't find an option to do do. I want all of my data, profile, gone. Does anyone know how to do this? Thx -- Mi