Web service response processing inside a BPM

Hi Experts,
Please can you let me know if it is possible to achieve the following inside a BPM:
u2022     Once you getting the web service  SOAP response, determine if itu2019s a SOAP fault or a normal web service response.
u2022     If itu2019s a SOAP fault, create a retry loop with a wait step inside the BPM to try and retry the process (perhaps 5 times in 1 minute intervals).
u2022     After the retry intervals, if the message is still in a failed step, force the BPM to go into an error state
u2022     If the Web Service returns a normal response, log the response inside a database table and end the BPM
If it is possible, please can you provide an example?
Thank you,
Brendon

Hi
Have you found the workaround?
Sorry for refreshing topic. Flag mustUnderstand ='1' in response is unussual thing.
BR

Similar Messages

  • Set listbox items from web service response

    Hi All
    I am trying to set list box items from a web service response. Couple of issues over here:
    1. The user should be able to select multiple items from the list. Hence if I set "Allow multiple values" and set Commit on "exit", then after the web service returns the output, no data is displayed in the listbox. I need to click inside the list box to see the data returned by the web service. How to overcome this..??  ( However this problem (clicking inside the listbox to see the items) does not exist if "Allow multiple values" is unchecked and Commit is set on "Select". )
    2. After the list box is filled up, certain default values should be selected. This selection is based on one of the response field (which is actually a table with multiple values... ). Hence, how to capture this response field and set the default values in the above list..??
    3. The same case for a dropdown. The values are visible in dropdown. However, a default value should be selected and displayed after returning a response from web service. Again, this default value is dependant on another field in the response as in point no.2
    I am trying to use postExecute event as described in [this|http://forms.stefcameron.com/2009/03/23/pre-process-web-service-responses/] link...however not able to achieve the functionality. Please provide suggestions / inputs.
    Thanks
    Deepak

    Hello,
    first: I don´t know anything about the right solution. I am unaware of the existence of the solution, because there were quite many of question about this multiple selection problem and I don´t remember a single "answer".
    I can recommend you to simplify everything and create the functionality yourself. I have done that before to avoid these "Adobe-standard" problems. If you have a problem with autofill of the object, ask your WS to send you a single string and pass it yourself using scripting (JS).
    And if you have problems with multiple selection, create your own field/ object. Get the string of values, parse it, create multiple lines of the dynamic table with some suitable tool to check/ select the rows you need (use checkbox for example, and your text as a table row). This way you can selected anything you want with no problems at all. It wil only cost you some extra work.
    Regards, Otto

  • Retrieve error message of SAP provided web service in web service response

    Hi All,
    We have a SAP provided web service that sometimes fails to process data it is called with. This is not a problem as the data sometimes is just plain wrong (i.e. date field contains text). However, the error is only logged in SAP and can only be queried using SRT_UTIL.
    The problem is that the error is not reported back via the response. How can we set up the web service so that the error could be displayed by the calling party without logging into SAP?
    Thanks for the help in advance.
    Best Regards,
    Daniel

    Hi Calvin,
    The WS is indeed synchronous. The problem is not whether the error is captured or not. It is captured indeed but it is logged inside SAP only and not returned via the Web Service response mechanism. The error message says that error message can be retrieved using SRT_UTIL.
    This is a major problem as the users of the outside system calling SAP have no right to use SRT_UTIL to track down the error. They need to contact SAP basis in order to get to the end of it.
    What we need to achieve is to get back the same error message that can be seen with SRT_UTIL via the web service.
    Thanks.

  • How to use a Web Service Response

    In the snps_users documentation it seems to be really easy but in fact...
    After invoking my web service I retrieve a XML file which is my response then we would like to use it.
    As written in the documentation I Export Response in XSD file, I create my XML Model but How to reverse the XSD ???
    There's 4 references to XSD into all the snps_users documentation but no one talking about.
    Moreover it's written See Creating and Reverse-Engineering a
    Model for an XML file for more information and that's what I'm doing but no way...
    So without the XSD I m trying to use the Response file like an XML file but I always have an error which looks like :
    java.sql.SQLException: No root found in the DTD file
    The Web Service Response XML File use NameSpace could the problem come from here ???
    If someone ever use it ...
    Thanks in advance.
    BM

    When I specify the XSD It raises another error,
    my URL is :
    jdbc:snps:xml?f=C:/Temp/File.xml&d=C:/Temp/File.xsd&s=REPON&nspg=xml
    Error message:
    java.sql.SQLException: A SAXException was caught while reading the model saying [Element value has no type]
    The XSD and the XML are generated by ODI after invoking a Web Service...
    Any idea ???

  • Web service response contains SOAP Headers with "mustUnderstand" true

    Hi
    I have a requirement where in I have to consume a web service as adaptive web service model, and while executing the service pass a mandatory parameter to the soap header. We are able to set the mandatory parameter to the soad header. We got the code snippet to do this from a wiki link
    http://wiki.sdn.sap.com/wiki/display/WDJava/FAQ-Models-AdaptiveWebService#FAQ-Models-AdaptiveWebService-WhatarethefunctionalgapsofthecurrentAdpativeWSModelImporter%3F
    On executing the service now through web dynpro we are getting the below error
    "Web service response contains SOAP Headers with "mustUnderstand" true which are not handled by the client runtime"
    Any thoughts on how to handle this mustUnderstand attribute with some code snippet? Appreciate all help.
    Thanks,
    KN.

    Hi
    Have you found the workaround?
    Sorry for refreshing topic. Flag mustUnderstand ='1' in response is unussual thing.
    BR

  • Marshelling Web Service Response Memory Leak

    I believe I have found a memory leak when using the configuration below.
    The memory leak occurs when calling a web service. When the web service function is marshelling the response of the function call, an "500 Internal Server Error ... java.lang.OutOfMemoryError" is returned from OC4J. This error may be seen via the TCP Packet Monitor in JDeveloper.
    Unfortunately no exception dump is outputted to the OC4J log.
    Configuration:
    Windows 2000 with 1 gig ram
    JDeveloper 9.0.5.2 with JAX/RPC extension installed
    OC4J 10.0.3
    Sun JVM version 1.4.2_03-b02
    To demonstrate the error I created a simple web service and client. See below the client and web service function that demonstrates it.
    The web service is made up of a single function called "queryTestOutput".
    It returns an object of class "TestOutputQueryResult" which contains an int and an array.
    The function call accepts a one int input parameter which is used to vary the size of array in the returned object.
    For small int (less than 100). Web service function returns successfully.
    For larger int and depending on the size of memory configuration when OC4J is launched,
    the OutOfMemoryError is returned.
    The package "ws_issue.service" contains the web service.
    I used the Generate JAX-RPC proxy to build the client (found in package "ws_issue.client"). Package "types" was
    also created by Generate JAX-RPC proxy.
    To test the web service call execute the class runClient. Vary the int "atestValue" until error is returned.
    I have tried this with all three encodings: RPC/Encoded, RPC/Literal, Document/Literal. They have the
    same issue.
    The OutOfMemory Error is raised fairly consistently using the java settings -Xms386m -Xmx386m for OC4J when 750 is specified for the input parameter.
    I also noticed that when 600 is specified, the client seems to hang. According to the TCP Packet Monitor,
    the response is returned. But, the client seems unable to unmarshal the message.
    ** file runClient.java
    // -- this client is using Document/Literal
    package ws_issue.client;
    public class runClient
    public runClient()
    * @param args
    * Test out the web service
    * Play with the atestValue variable to until exception
    public static void main(String[] args)
    //runClient runClient = new runClient();
    long startTime;
    int atestValue = 1;
    atestValue = 2;
    //atestValue = 105; // last one to work with default memory settings in oc4j
    //atestValue = 106; // out of memory error as seen in TCP Packet Monitor
    // fails with default memory settings in oc4j
    //atestValue = 600; // hangs client (TCP Packet Monitor shows response)
    // when oc4j memory sessions are -Xms386m -Xmx386m
    atestValue = 750; // out of memory error as seen in TCP Packet Monitor
    // when oc4j memory sessions are -Xms386m -Xmx386m
    try
    startTime = System.currentTimeMillis();
    Ws_issueInterface ws = (Ws_issueInterface) (new Ws_issue_Impl().getWs_issueInterfacePort());
    System.out.println("Time to obtain port: " + (System.currentTimeMillis() - startTime) );
    // call the web service function
    startTime = System.currentTimeMillis();
    types.QueryTestOutputResponse qr = ws.queryTestOutput(new types.QueryTestOutput(atestValue));
    System.out.println("Time to call queryTestOutput: " + (System.currentTimeMillis() - startTime) );
    startTime = System.currentTimeMillis();
    types.TestOutputQueryResult r = qr.getResult();
    System.out.println("Time to call getresult: " + (System.currentTimeMillis() - startTime) );
    System.out.println("records returned: " + r.getRecordsReturned());
    for (int i = 0; i<atestValue; i++)
    types.TestOutput t = r.getTestOutputResults();
    System.out.println(t.getTestGroup() + ", " + t.getUnitNumber());
    catch (Exception e)
    e.printStackTrace();
    ** file wsmain.java
    package ws_issue.service;
    import java.rmi.RemoteException;
    import javax.xml.rpc.ServiceException;
    import javax.xml.rpc.server.ServiceLifecycle;
    public class wsmain implements ServiceLifecycle, ws_issueInterface
    public wsmain()
    public void init (Object p0) throws ServiceException
    public void destroy ()
    System.out.println("inside ws destroy");
    * create an element of the array with some hardcoded values
    private TestOutput createTestOutput(int cnt)
    TestOutput t = new TestOutput();
    t.setComments("here are some comments");
    t.setConfigRevisionNo("1");
    t.setItemNumber("123123123");
    t.setItemRevision("arev" + cnt);
    t.setTestGroup(cnt);
    t.setTestedItemNumber("123123123");
    t.setTestedItemRevision("arev" + cnt);
    t.setTestResult("testResult");
    t.setSoftwareVersion("version");
    t.setTestConditions("conditions");
    t.setStageName("world's a stage");
    t.setTestMode("Test");
    t.setTestName("test name");
    t.setUnitNumber("UnitNumber"+cnt);
    return t;
    * Web service function that is called
    * Create recCnt number of "records" to be returned
    public TestOutputQueryResult queryTestOutput (int recCnt) throws java.rmi.RemoteException
    System.out.println("Inside web service function queryTestOutput");
    TestOutputQueryResult r = new TestOutputQueryResult();
    TestOutput TOArray[] = new TestOutput[recCnt];
    for (int i = 0; i< recCnt; i++)
    TOArray = createTestOutput(i);
    r.setRecordsReturned(recCnt);
    r.setTestOutputResults(TOArray);
    System.out.println("End of web service function call");
    return r;
    * @param args
    public static void main(String[] args)
    wsmain wsmain = new wsmain();
    int aval = 5;
    try
    TestOutputQueryResult r = wsmain.queryTestOutput(aval);
    for (int i = 0; i<aval; i++)
    TestOutput t = r.getTestOutputResults();
    System.out.println(t.getTestGroup() + ", " + t.getUnitNumber());
    catch (Exception e)
    e.printStackTrace();
    ** file ws_issueInterface.java
    package ws_issue.service;
    import java.rmi.Remote;
    import java.rmi.RemoteException;
    public interface ws_issueInterface extends java.rmi.Remote
    public TestOutputQueryResult queryTestOutput (int recCnt) throws java.rmi.RemoteException;
    ** file TestOutputQueryResult.java
    package ws_issue.service;
    public class TestOutputQueryResult
    private long recordsReturned;
    private TestOutput[] testOutputResults;
    public TestOutputQueryResult()
    public long getRecordsReturned()
    return recordsReturned;
    public void setRecordsReturned(long recordsReturned)
    this.recordsReturned = recordsReturned;
    public TestOutput[] getTestOutputResults()
    return testOutputResults;
    public void setTestOutputResults(TestOutput[] testOutputResults)
    this.testOutputResults = testOutputResults;
    ** file TestOutput.java
    package ws_issue.service;
    public class TestOutput
    private String itemNumber;
    private String itemRevision;
    private String configRevisionNo;
    private String testName;
    private String testConditions;
    private String stageName;
    private String testedItemNumber;
    private String testedItemRevision;
    private String unitNumber;
    private String testStation;
    private String testResult;
    private String softwareVersion;
    private String operatorID;
    private String testDate; // to be datetime
    private String comments;
    private int testGroup;
    private String testMode;
    public TestOutput()
    public String getComments()
    return comments;
    public void setComments(String comments)
    this.comments = comments;
    public String getConfigRevisionNo()
    return configRevisionNo;
    public void setConfigRevisionNo(String configRevisionNo)
    this.configRevisionNo = configRevisionNo;
    public String getItemNumber()
    return itemNumber;
    public void setItemNumber(String itemNumber)
    this.itemNumber = itemNumber;
    public String getItemRevision()
    return itemRevision;
    public void setItemRevision(String itemRevision)
    this.itemRevision = itemRevision;
    public String getOperatorID()
    return operatorID;
    public void setOperatorID(String operatorID)
    this.operatorID = operatorID;
    public String getSoftwareVersion()
    return softwareVersion;
    public void setSoftwareVersion(String softwareVersion)
    this.softwareVersion = softwareVersion;
    public String getStageName()
    return stageName;
    public void setStageName(String stageName)
    this.stageName = stageName;
    public String getTestConditions()
    return testConditions;
    public void setTestConditions(String testConditions)
    this.testConditions = testConditions;
    public String getTestDate()
    return testDate;
    public void setTestDate(String testDate)
    this.testDate = testDate;
    public String getTestName()
    return testName;
    public void setTestName(String testName)
    this.testName = testName;
    public String getTestResult()
    return testResult;
    public void setTestResult(String testResult)
    this.testResult = testResult;
    public String getTestStation()
    return testStation;
    public void setTestStation(String testStation)
    this.testStation = testStation;
    public String getTestedItemNumber()
    return testedItemNumber;
    public void setTestedItemNumber(String testedItemNumber)
    this.testedItemNumber = testedItemNumber;
    public String getTestedItemRevision()
    return testedItemRevision;
    public void setTestedItemRevision(String testedItemRevision)
    this.testedItemRevision = testedItemRevision;
    public String getUnitNumber()
    return unitNumber;
    public void setUnitNumber(String unitNumber)
    this.unitNumber = unitNumber;
    public int getTestGroup()
    return testGroup;
    public void setTestGroup(int testGroup)
    this.testGroup = testGroup;
    public String getTestMode()
    return testMode;
    public void setTestMode(String testMode)
    this.testMode = testMode;

    Many thanks for your help.  This solved the issue for our .NET code, however the leak is still present in the report designer.  I was also wondering if you could help further: because of the limits on the java memory process is there a way to ensure that a separate java process is started for each report that is loaded in my report viewers collection?  Essentially the desktop application that i have created uses a tab control to display each type report, so each tab goes through the following code when displaying a report and closing a tab:
    Is there a way to ensure that a different Java process is kicked off each time that I display a different report?  My current code in c# always uses the same Java process so the memory ramps up.  The code to load the report and then dispose of the report through closing the tab (and now the Java process) looks like this:
        private void LoadCrystalReport(string FullReportName)
          ReportDocument reportDoc = new ReportDocument();
          reportDoc.Load(FullReportName, OpenReportMethod.OpenReportByTempCopy);
          this.crystalReportViewer1.ReportSource = reportDoc;
        private void DisposeCrystalReportObject()
          if (crystalReportViewer1.ReportSource != null)
            ReportDocument report = (ReportDocument)crystalReportViewer1.ReportSource;
            foreach (Table table in report.Database.Tables)
              table.Dispose();
            report.Database.Dispose();
            report.Close();
            report.Dispose();
            GC.Collect();
    Thanks

  • Differing Web Service responses between 10.1.3.3 and 11g

    In our production environment we have deployed several ESB projects. I am currently going through these projects and attempting to update them to 11g. These projects follow the same basic design. In the 101.3.4 environment they consist of an exposed routing service generated from a schema document which routes to a Web service adapter. The exposed service is called from our asset management system the service adapter is invoking a PeopleSoft Asynchronous one way web service. In 11g this became two web service adapters (the first as an exposed one-way service) linked by a mediator.
    In our 101.3.4 environment this process worked without exceptions. After upgrading the project our asset management system would raise an exception after each call to the exposed service. Interestingly I can check em and also PeopleSoft and the payload is successfully delivered. When I review the instance in em there are no faults or exceptions. I have auditing turned on and can see that the service, mediator and reference steps have all successfully completed. When I look at the log for the particular instance I do receive a warning which states:
    Error parsing envelope: most likely due to an invalid SOAP message.: Unexpected EOF in prolog\r\n at [row,col {unknown-source}]: [1,0]
    I used soapUI to debug the service calls. If I call the PeopleSoft web service without using the mediator project I receive the following response:
    Tue Aug 18 20:55:37 PDT 2009:DEBUG:<< "HTTP/1.1 200 OK[\r][\n]"
    Tue Aug 18 20:55:37 PDT 2009:DEBUG:<< "HTTP/1.1 200 OK[\r][\n]"
    Tue Aug 18 20:55:37 PDT 2009:DEBUG:<< "Date: Wed, 19 Aug 2009 03:57:01 GMT[\r][\n]"
    Tue Aug 18 20:55:37 PDT 2009:DEBUG:<< "Content-Length: 0[\r][\n]"
    Tue Aug 18 20:55:37 PDT 2009:DEBUG:<< "Content-Type: text/xml; charset=UTF-8[\r][\n]"
    Tue Aug 18 20:55:37 PDT 2009:DEBUG:<< "X-Powered-By: Servlet/2.4 JSP/2.0[\r][\n]"
    When I call the exposed service in my 10.1.3.4 ESB project I receive the following response:
    Tue Aug 18 20:57:26 PDT 2009:DEBUG:<< "HTTP/1.1 200 OK[\r][\n]"
    Tue Aug 18 20:57:26 PDT 2009:DEBUG:<< "HTTP/1.1 200 OK[\r][\n]"
    Tue Aug 18 20:57:26 PDT 2009:DEBUG:<< "Date: Wed, 19 Aug 2009 03:57:25 GMT[\r][\n]"
    Tue Aug 18 20:57:26 PDT 2009:DEBUG:<< "Content-Length: 212[\r][\n]"
    Tue Aug 18 20:57:26 PDT 2009:DEBUG:<< "Content-Type: text/xml;charset=utf-8[\r][\n]"
    Tue Aug 18 20:57:26 PDT 2009:DEBUG:<< "X-Powered-By: Servlet/2.4 JSP/2.0[\r][\n]"
    Tue Aug 18 20:57:26 PDT 2009:DEBUG:<< "[\r][\n]"
    Tue Aug 18 20:57:26 PDT 2009:DEBUG:<< "<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">[\n]"
    Tue Aug 18 20:57:26 PDT 2009:DEBUG:<< " <soapenv:Body/>[\n]"
    Tue Aug 18 20:57:26 PDT 2009:DEBUG:<< "</soapenv:Envelope>"
    You will notice that what is returned is a soap envelope which has an empty body.
    If i then make the call through the 11g exposed service I get the following response:
    Tue Aug 18 20:58:46 PDT 2009:DEBUG:<< "HTTP/1.1 202 Accepted[\r][\n]"
    Tue Aug 18 20:58:46 PDT 2009:DEBUG:<< "HTTP/1.1 202 Accepted[\r][\n]"
    Tue Aug 18 20:58:46 PDT 2009:DEBUG:<< "Date: Wed, 19 Aug 2009 03:58:46 GMT[\r][\n]"
    Tue Aug 18 20:58:46 PDT 2009:DEBUG:<< "Content-Length: 0[\r][\n]"
    Tue Aug 18 20:58:46 PDT 2009:DEBUG:<< "Content-Type: [\r][\n]"
    Tue Aug 18 20:58:46 PDT 2009:DEBUG:<< "X-ORACLE-DMS-ECID: 0000ICkncqY0bq3pzk8DyW1ANuRl000035[\r][\n]"
    Tue Aug 18 20:58:46 PDT 2009:DEBUG:<< "X-Powered-By: Servlet/2.5 JSP/2.1[\r][\n]"
    Tue Aug 18 20:58:46 PDT 2009:DEBUG:<< "[\r][\n]"
    I believe the exception being thrown by the asset management system is a result of the zero length, empty content-type being returned from my mediator service or possibly the fact that the return code is 202 as opposed to 200.
    First I would like to know if anyone has experienced the same behavior and whether this behavior is by design. Is a response required from all services even if they are one way?
    Second if this is by design is it possible within the mediator project to force a return code of 200 and a response that includes an empty soap envelope?
    Of course any other solutions are welcome as well. I am leaning towards a solution which can be implemented within my mediator project as I have much more flexibility there then either of the other participating systems.
    Thank you very much.

    After exploring this issue with Oracle Support and doing some of my own research I believe that the issue is not the SOA Suite but rather the third party system which was calling exposed service in the SOA Suite. According to the link below both the response returned from the 10.1.3.4 esb project and the 11.1.1.1 mediator project are valid. What is returned from calling a one-way service appears to be up to the implementer of the service.
    http://www.w3.org/TR/2006/NOTE-soap11-ror-httpbinding-20060321/
    "This SOAP 1.1 request optional response HTTP binding, in conjunction with the SOAP 1.1 binding [SOAP 1.1], can be used for sending request messages with an optional SOAP response. This binding augments the SOAP 1.1 binding by allowing that the HTTP [RFC 2616] response MAY have a 202 status code and the response body MAY be empty. Note that the HTTP [RFC 2616] specification states "the 202 response is intentionally non-committal" and so any content in the response body, including a SOAP Envelope, MAY not be an expected SOAP response"

  • Removing xmlns from web service response issue (XSTL mapping)

    Hi XI experts.
    I'm having a very strange issue with a pamming program: It all started because the response from a 3rd party web service is coming with a "xmlns=http://....etc" in the document node and this was causing XI not to recognize the message.
    After reading most of the forum threads and with the help of other web resources, I was able to write a small XSLT program to remove this. The program seems to work perfectly: I can open the resulting XML document in IE, return it as a response to a test soapUI call, even load it all in "green" in the XI mapping test tool.
    But, when I feed the resulting message into the next mapping (XI mapping), only the Message Type node is produced at the other end!!! Not even an error message is issued. The same happens in the mapping test tool. Hoewver, I'm able to display the queues. I'm puzzled.
    This is my XSLT mapping, is there anything wrong with it?
    <?xml version="1.0" encoding="UTF-8" ?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:template match="*">
    <xsl:element name="{local-name()}">
    <xsl:for-each select="@*">
    <xsl:attribute name="{local-name()}">
    <xsl:value-of select="."/>
    </xsl:attribute>
    </xsl:for-each>
    <xsl:apply-templates/>
    </xsl:element>
    </xsl:template>
    </xsl:stylesheet>
    Thanks in advance.
    Carlos

    Hi Aamir,
    Thanks for your response. I will check it out.
    In the last 10 minutes or so I realized that the empty message is being produced because the first child node of the message is optional (0..1) and for some strange reason that source node mapped to it was not being recognized after the XSLT. I confirmed this by mapping this node to a constant. Then I restored the original mapping and now it's working - weird! It looks like something was messed up inside the XI mapping program.  I will continue testing however I am now off-site and have no connectivity via SOAPUI until Monday.
    Thanks.
    Carlos

  • Web Service Response issue for some Requests

    I have a WebService deployed on Oracle Application Server and it's an HTTPS connection. I am facing a small issue and can't figure out
    what's going on. For each request there's a response returned. Sometimes the comsumer does not get the response back even though the request
    is successfully processed and response generated but some how it never makes it to the consumer.
    Here is the signature of the function:
    public Element parseData(Element data) throws RemoteException;
    --------------------------------------------------------------------------------And I can't figure out why a consumer does not receive a response back for some of the requests. Any ideas what might be wrong or how to
    debug this issue. Is there any place I can look to see for each request is a response going back. I don't know if it's related Network or
    App. Server and where to start to debug this. As looking at the logs of my Web Service I do see all the requests being processed and response
    being generated but some how it never makes it to the consumer. It normally takes arround 5 to 10 seconds to process each request and most
    of time multiple requests may be being processed.
    Any help is appreciated.
    Thanks

    Hi there.
    If the consumer of your service is a .NET client, it will silently ignore any response that is not formated as advertize in the WSDL and will return an empty object to the caller. As you are trying to use raw XML Element, it seams to be a potential explaination.
    If you can turn off SSL in your test environment, you may want to run a TCP sniffer tool, on the host where your server is running. You can setup a filter on the IP @ of the consumer or the TCP port of the service comsumed. I'll recommend you look at ethereal as it's a cross platform utility.
    Hope it helps.
    Eric

  • Web service response too big to handle

    Hi,
    We are implementing web service in PTools 8.46. It is synchronous OUtbound. When we generate the request, the response for the same is too big to handle. The app Engine which sends the SYNCREQUEST goes to 'Processing' status and remains that way.
    When we try the same request through SOAPUI Utility, we can see the response[It is really huge. I saved it to wordpad and the size of wordpad file was 4KB].
    Is there anyway in PEopleSoft we can handle these huge responses?
    REgards

    Hi,
    We are implementing web service in PTools 8.46. It is synchronous OUtbound. When we generate the request, the response for the same is too big to handle. The app Engine which sends the SYNCREQUEST goes to 'Processing' status and remains that way.
    When we try the same request through SOAPUI Utility, we can see the response[It is really huge. I saved it to wordpad and the size of wordpad file was 4KB].
    Is there anyway in PEopleSoft we can handle these huge responses?
    REgards

  • Potential Memory Leak during Marshelling of a Web Service Response

    I believe I have found a memory leak when using the configuration below.
    The memory leak occurs when calling a web service. When the web service function is marshelling the response of the function call, an "500 Internal Server Error ... java.lang.OutOfMemoryError" is returned from OC4J. This error may be seen via the TCP Packet Monitor in JDeveloper.
    Unfortunately no exception dump is outputted to the OC4J log.
    Configuration:
    Windows 2000 with 1 gig ram
    JDeveloper 9.0.5.2 with JAX/RPC extension installed
    OC4J 10.0.3
    Sun JVM version 1.4.2_03-b02
    To demonstrate the error I created a simple web service and client. See below the client and web service function that demonstrates it.
    The web service is made up of a single function called "queryTestOutput".
    It returns an object of class "TestOutputQueryResult" which contains an int and an array.
    The function call accepts a one int input parameter which is used to vary the size of array in the returned object.
    For small int (less than 100). Web service function returns successfully.
    For larger int and depending on the size of memory configuration when OC4J is launched,
    the OutOfMemoryError is returned.
    The package "ws_issue.service" contains the web service.
    I used the Generate JAX-RPC proxy to build the client (found in package "ws_issue.client"). Package "types" was
    also created by Generate JAX-RPC proxy.
    To test the web service call execute the class runClient. Vary the int "atestValue" until error is returned.
    I have tried this with all three encodings: RPC/Encoded, RPC/Literal, Document/Literal. They have the
    same issue.
    The OutOfMemory Error is raised fairly consistently using the java settings -Xms386m -Xmx386m for OC4J when 750 is specified for the input parameter.
    I also noticed that when 600 is specified, the client seems to hang. According to the TCP Packet Monitor,
    the response is returned. But, the client seems unable to unmarshal the message.
    ** file runClient.java
    // -- this client is using Document/Literal
    package ws_issue.client;
    public class runClient
    public runClient()
    * @param args
    * Test out the web service
    * Play with the atestValue variable to until exception
    public static void main(String[] args)
    //runClient runClient = new runClient();
    long startTime;
    int atestValue = 1;
    atestValue = 2;
    //atestValue = 105; // last one to work with default memory settings in oc4j
    //atestValue = 106; // out of memory error as seen in TCP Packet Monitor
    // fails with default memory settings in oc4j
    //atestValue = 600; // hangs client (TCP Packet Monitor shows response)
    // when oc4j memory sessions are -Xms386m -Xmx386m
    atestValue = 750; // out of memory error as seen in TCP Packet Monitor
    // when oc4j memory sessions are -Xms386m -Xmx386m
    try
    startTime = System.currentTimeMillis();
    Ws_issueInterface ws = (Ws_issueInterface) (new Ws_issue_Impl().getWs_issueInterfacePort());
    System.out.println("Time to obtain port: " + (System.currentTimeMillis() - startTime) );
    // call the web service function
    startTime = System.currentTimeMillis();
    types.QueryTestOutputResponse qr = ws.queryTestOutput(new types.QueryTestOutput(atestValue));
    System.out.println("Time to call queryTestOutput: " + (System.currentTimeMillis() - startTime) );
    startTime = System.currentTimeMillis();
    types.TestOutputQueryResult r = qr.getResult();
    System.out.println("Time to call getresult: " + (System.currentTimeMillis() - startTime) );
    System.out.println("records returned: " + r.getRecordsReturned());
    for (int i = 0; i<atestValue; i++)
    types.TestOutput t = r.getTestOutputResults();
    System.out.println(t.getTestGroup() + ", " + t.getUnitNumber());
    catch (Exception e)
    e.printStackTrace();
    ** file wsmain.java
    package ws_issue.service;
    import java.rmi.RemoteException;
    import javax.xml.rpc.ServiceException;
    import javax.xml.rpc.server.ServiceLifecycle;
    public class wsmain implements ServiceLifecycle, ws_issueInterface
    public wsmain()
    public void init (Object p0) throws ServiceException
    public void destroy ()
    System.out.println("inside ws destroy");
    * create an element of the array with some hardcoded values
    private TestOutput createTestOutput(int cnt)
    TestOutput t = new TestOutput();
    t.setComments("here are some comments");
    t.setConfigRevisionNo("1");
    t.setItemNumber("123123123");
    t.setItemRevision("arev" + cnt);
    t.setTestGroup(cnt);
    t.setTestedItemNumber("123123123");
    t.setTestedItemRevision("arev" + cnt);
    t.setTestResult("testResult");
    t.setSoftwareVersion("version");
    t.setTestConditions("conditions");
    t.setStageName("world's a stage");
    t.setTestMode("Test");
    t.setTestName("test name");
    t.setUnitNumber("UnitNumber"+cnt);
    return t;
    * Web service function that is called
    * Create recCnt number of "records" to be returned
    public TestOutputQueryResult queryTestOutput (int recCnt) throws java.rmi.RemoteException
    System.out.println("Inside web service function queryTestOutput");
    TestOutputQueryResult r = new TestOutputQueryResult();
    TestOutput TOArray[] = new TestOutput[recCnt];
    for (int i = 0; i< recCnt; i++)
    TOArray[i] = createTestOutput(i);
    r.setRecordsReturned(recCnt);
    r.setTestOutputResults(TOArray);
    System.out.println("End of web service function call");
    return r;
    * @param args
    public static void main(String[] args)
    wsmain wsmain = new wsmain();
    int aval = 5;
    try
    TestOutputQueryResult r = wsmain.queryTestOutput(aval);
    for (int i = 0; i<aval; i++)
    TestOutput t = r.getTestOutputResults()[i];
    System.out.println(t.getTestGroup() + ", " + t.getUnitNumber());
    catch (Exception e)
    e.printStackTrace();
    ** file ws_issueInterface.java
    package ws_issue.service;
    import java.rmi.Remote;
    import java.rmi.RemoteException;
    public interface ws_issueInterface extends java.rmi.Remote
    public TestOutputQueryResult queryTestOutput (int recCnt) throws java.rmi.RemoteException;
    ** file TestOutputQueryResult.java
    package ws_issue.service;
    public class TestOutputQueryResult
    private long recordsReturned;
    private TestOutput[] testOutputResults;
    public TestOutputQueryResult()
    public long getRecordsReturned()
    return recordsReturned;
    public void setRecordsReturned(long recordsReturned)
    this.recordsReturned = recordsReturned;
    public TestOutput[] getTestOutputResults()
    return testOutputResults;
    public void setTestOutputResults(TestOutput[] testOutputResults)
    this.testOutputResults = testOutputResults;
    ** file TestOutput.java
    package ws_issue.service;
    public class TestOutput
    private String itemNumber;
    private String itemRevision;
    private String configRevisionNo;
    private String testName;
    private String testConditions;
    private String stageName;
    private String testedItemNumber;
    private String testedItemRevision;
    private String unitNumber;
    private String testStation;
    private String testResult;
    private String softwareVersion;
    private String operatorID;
    private String testDate; // to be datetime
    private String comments;
    private int testGroup;
    private String testMode;
    public TestOutput()
    public String getComments()
    return comments;
    public void setComments(String comments)
    this.comments = comments;
    public String getConfigRevisionNo()
    return configRevisionNo;
    public void setConfigRevisionNo(String configRevisionNo)
    this.configRevisionNo = configRevisionNo;
    public String getItemNumber()
    return itemNumber;
    public void setItemNumber(String itemNumber)
    this.itemNumber = itemNumber;
    public String getItemRevision()
    return itemRevision;
    public void setItemRevision(String itemRevision)
    this.itemRevision = itemRevision;
    public String getOperatorID()
    return operatorID;
    public void setOperatorID(String operatorID)
    this.operatorID = operatorID;
    public String getSoftwareVersion()
    return softwareVersion;
    public void setSoftwareVersion(String softwareVersion)
    this.softwareVersion = softwareVersion;
    public String getStageName()
    return stageName;
    public void setStageName(String stageName)
    this.stageName = stageName;
    public String getTestConditions()
    return testConditions;
    public void setTestConditions(String testConditions)
    this.testConditions = testConditions;
    public String getTestDate()
    return testDate;
    public void setTestDate(String testDate)
    this.testDate = testDate;
    public String getTestName()
    return testName;
    public void setTestName(String testName)
    this.testName = testName;
    public String getTestResult()
    return testResult;
    public void setTestResult(String testResult)
    this.testResult = testResult;
    public String getTestStation()
    return testStation;
    public void setTestStation(String testStation)
    this.testStation = testStation;
    public String getTestedItemNumber()
    return testedItemNumber;
    public void setTestedItemNumber(String testedItemNumber)
    this.testedItemNumber = testedItemNumber;
    public String getTestedItemRevision()
    return testedItemRevision;
    public void setTestedItemRevision(String testedItemRevision)
    this.testedItemRevision = testedItemRevision;
    public String getUnitNumber()
    return unitNumber;
    public void setUnitNumber(String unitNumber)
    this.unitNumber = unitNumber;
    public int getTestGroup()
    return testGroup;
    public void setTestGroup(int testGroup)
    this.testGroup = testGroup;
    public String getTestMode()
    return testMode;
    public void setTestMode(String testMode)
    this.testMode = testMode;

    I use web services a lot and I sympathize with your issue. I
    struggle with similar issues and I found this great utility that
    will help you confirm if your webservice is returning the data
    correctly to Flex. I know you said it works in other applications
    but who knows if flex is calling it correctly etc. This utility is
    been the most amazing tool in helping me resolve web service
    issues.
    http://www.charlesproxy.com/
    Once you can confirm the data being returned is good you can
    try several things in flex. Try changing your result format to
    object or e4x etc. See how that plays out. Not sure where your
    tapping in to look at your debugger, you might want to catch it
    right at the result handler before converting to any collections. .
    If nothing here helps maybe post some code to look at. .
    .

  • Web Service response not working...

    Hi, does anyone see anything wrong with this code? It
    executes the web service fine but the returned response it is not
    showing up in the text area...
    TIA
    <?xml version="1.0" encoding="utf-8"?>
    <mx:Application xmlns:mx="
    http://www.adobe.com/2006/mxml"
    layout="absolute">
    <mx:WebService id="foo" wsdl="
    http://server01:8080/services/Login?wsdl">
    <mx:operation name="synchronousInvoke">
    <mx:request>
    <searchtype>2</searchtype>
    <searchvalue>arth</searchvalue>
    </mx:request>
    </mx:operation>
    </mx:WebService>
    <mx:Button label="Get Data"
    click="foo.synchronousInvoke.send()" x="261" y="405"/>
    <mx:TextArea text="{foo.synchronousInvoke.result}"
    x="261" y="46" width="565" height="339"/>
    </mx:Application>

    Hi, does anyone see anything wrong with this code? It
    executes the web service fine but the returned response it is not
    showing up in the text area...
    TIA
    <?xml version="1.0" encoding="utf-8"?>
    <mx:Application xmlns:mx="
    http://www.adobe.com/2006/mxml"
    layout="absolute">
    <mx:WebService id="foo" wsdl="
    http://server01:8080/services/Login?wsdl">
    <mx:operation name="synchronousInvoke">
    <mx:request>
    <searchtype>2</searchtype>
    <searchvalue>arth</searchvalue>
    </mx:request>
    </mx:operation>
    </mx:WebService>
    <mx:Button label="Get Data"
    click="foo.synchronousInvoke.send()" x="261" y="405"/>
    <mx:TextArea text="{foo.synchronousInvoke.result}"
    x="261" y="46" width="565" height="339"/>
    </mx:Application>

  • How can prevent http chunks receiving in a web service response?

    Hi guys,
    I'm developing a WS client mobile application, which consumes a Web Service (java based).
    Usually it works fine, but sometimes in the clinet I get: java.rmi.MarshalException: Unexpected Exception : unexpected end of stream
    This error occur when some big data has to be received from the server.
    I've done some research on this problem and find that this is caused because of sending of th response via HTTP chunks. Somehow the server and client sides does not
    communicates as expected.
    I have no access to the Web service implementation.
    Is there a workaround to solve this problem on the client side?
    Can I force WS client to not receive the response in http chunks?
    Thanks

    I managed to fix it by using the well known pattern:
    Web Service on the server(1) <--> Web Application(2) <--> Mobile Client(3).
    For communication between (1) and (2) was by using WS, and between (2) and (3) was made by plain http connection. Now the application is portable and don't have any limitations.
    radarada, thanks for the advice. It may work, may be I can try it when I have some time.
    Vladdy

  • Return Table empty in Web Service response

    Hi All,
    My Question is more of related to Web Service. I have created a Web Service from ABAP for BAPI_PO_GETDETAIL. This BAPI is working fine in R/3.
    I am using this particular Web Service in Adobe Form (using only ADOBE LIVECYCLE Designer). It's is working fine If i pass the correct Data(Purchase order no.) I'll get the O/p. In case I put a wrong PO number I am not getting the values in return Table in response. (If i test the BAPI in R/3 i m getting a message in Return table that PO no. doesn't exist)
    Any Help will be appreciated.
    PS; I m using Adobe liveCycle designer 7.1 and Acrobat Professional 9.
    Regards,
    Sachin

    Hi,
    It is sufficient to make changes in the WebService Definition.
    I communicated wrong entries, do make changes like: follow the previous steps and goto the se80 to respective webservice and do make changes in both External View and Internal View, as when you go into these views you'll find under some node "Input" and "Output", here need to do changes in tables present in the "input" and "output" as when you go into "input" or "output" to a respective table there you'll find two sections "External" and "Abap" do edit in Section "External" as Check the checkbox "Exposed" and Uncheck the checkbox "Optional" also "Min Occurr" should be "1" and "Max occurr" should be unbounded.
    Make sure in the Adobe Form, for the button which you are calling the webservice, goto the object pallette of that button and goto execute tab and there check the checkbox "Re-merge form data" or if you are invoking the webservice through scripting then you make change the script like"......execute(1)...".
    Regards
    Pradeep Goli

  • MTOM Encoded Web Service Response

    Hi,
    I am trying to call from APEX some web services that are MTOM encoded and the calls are failing.
    Does APEX support MTOM encoding? I am using the apex_web_service.make_request function.
    Below is a comparison of 2 service raw responses from soapUI, one that works with APEX and one that doesn’t.
    Service 1 Raw Response:
    HTTP/1.1 500 Internal Server Error
    Date: Fri, 05 Jul 2013 17:06:41 GMT
    Server: Apache-Coyote/1.1
    X-Powered-By: None
    Content-Type: application/soap+xml;charset=UTF-8
    Content-Length: 734
    Access-Control-Allow-Origin: *
    Connection: close
    <soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope"><soap:Body>.................</soap:Body></soap:Envelope>
    Service 2 Raw Response:
    HTTP/1.1 500 Internal Server Error
    Date: Fri, 05 Jul 2013 17:05:14 GMT
    Server: Apache-Coyote/1.1
    X-Powered-By: None
    Content-Type: multipart/related; type="application/xop+xml";boundary="uuid:2505d950-8e95-4cd7-a350-a73962f5b748";start="<[email protected]>";start-info="application/soap+xml"
    Content-Length: 1175
    Access-Control-Allow-Origin: *
    Connection: close
    --uuid:2505d950-8e95-4cd7-a350-a73962f5b748
    Content-Type:application/xop+xml; charset=UTF-8; type="application/soap+xml";
    Content-Transfer-Encoding: binary
    Content-ID: <[email protected]>
    <soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope"><soap:Body>.............</soap:Body></soap:Envelope>
    --uuid:2505d950-8e95-4cd7-a350-a73962f5b748—
    Service 1 works with APEX, it has a standard “application/soap+xml” content type and XML follows immediately after the header, which APEX expects and is able to parse.
    Service 2 does not work with APEX, it has the specific MTOM “multipart/related;type="application/xop+xml"” content type and after the header the uuid reference for the multipart response.
    Any idea on how to handle these types of web service calls from APEX?
    Thanks!

    Hi
    Have you found the workaround?
    Sorry for refreshing topic. Flag mustUnderstand ='1' in response is unussual thing.
    BR

Maybe you are looking for

  • How do you get Personal Groups into iphone 5s?

    I have a few personal groups on my outlook account that i use quite often. Is there a way i can import the personal groups i have from my outlook account to my iphone 5s? That way when i sent an e-mail, I can just send it to groups instead of typing

  • HT4818 Can you use both Bootcamp and Parallels with the same Windows 7 installed

    I have Parallels installed with Windows 7.  Can I use both Bootcamp and Parallels on the same machine depending on whether I just want to work in Windows all day (Bootcamp) or alternate during the same session (Parallels)?

  • Is it possible to use a variable value

    with pop up message. Like that: message 'Already recorded. Please type another number. The next possile number is ' PossibleNUmberVariableName type (I). is such a thing possible? Please help. I neen it. Thanks. deniz.

  • Report generation on web

    Hi All. I am facing an issue ....  I want to generate reports on web for that i have maintained all the settings for web application designer .... .. but still its showing error when i click on "publish on web" button under Bex analyzer.... Any sugge

  • Extra padding in applications table

    I am using an applicationsTable in my jsff page and as per the requirement, have to set the property primaryToolbarRendered="false". <af:panelHeader text="#{CmlRunControlGenBundle['OLabel.ConfigureProcesses']}" id="sdh1" partialTriggers="AT1:_ATp:ATt