OSB Service callout losing fault info xml structure

Hi there
I have a proxy service (getAccount) that being called via service callout by getBilling.proxy service.
getAccount throws a fault message that I want to catch in getBilling.
But the original fault from getAccount somehow get lost the xml structure in the detail node. The "<" sign change into "&lt;"
Am I missing something here. How the xml structure get lost in the detail node ?
Here's the output:
<soapenv:Body>
  <soapenv:Fault>
  <faultcode>soapenv:Server</faultcode>
  <faultstring>BEA-382502: OSB Service Callout action received an error response</faultstring>
  <detail>
     <con:fault xmlns:con="http://www.bea.com/wli/sb/context">
     <con:errorCode>BEA-382502</con:errorCode>
     <con:reason>OSB Service Callout action received an error response</con:reason>
    <con:details>
       <con1:ErrorResponseDetail xmlns:con1="http://www.bea.com/wli/sb/stages/transform/config">
       <con1:detail>
          &lt;ipms:fault xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ipms="http://www.indosat.com/ipms">
          &lt;ipms:faultcode>IPMS-5000&lt;/ipms:faultcode>
          &lt;ipms:faultstring>Account Not Found&lt;/ipms:faultstring>
          &lt;ipms:faultlocation>
          &lt;ipms:faultsource>/billing-stream/proxy/getAccount&lt;/ipms:faultsource>
         &lt;ipms:faultnode>RouteTo_getAccountByMsisdn_db&lt;/ipms:faultnode>
    &lt;ipms:faultpath>response-pipeline&lt;/ipms:faultpath>
  &lt;/ipms:faultlocation>
  &lt;ipms:detail>
    &lt;con:errorCode xmlns:con="http://www.bea.com/wli/sb/context">IPMS-5000&lt;/con:errorCode>
    &lt;con:reason xmlns:con="http://www.bea.com/wli/sb/context">Account Not Found&lt;/con:reason>
    &lt;con:location xmlns:con="http://www.bea.com/wli/sb/context">
      &lt;con:node>RouteTo_getAccountByMsisdn_db&lt;/con:node>
      &lt;con:path>response-pipeline&lt;/con:path>
    &lt;/con:location>
  &lt;/ipms:detail>
&lt;/ipms:fault>
  </con1:detail>
  </con1:ErrorResponseDetail>
  </con:details>
  <con:location>
  <con:node>PipelinePairNode1</con:node>
  <con:pipeline>PipelinePairNode1_request</con:pipeline>
  <con:stage>stage1</con:stage>
  <con:path>request-pipeline</con:path>
  </con:location>
  </con:fault>
  </detail>
  </soapenv:Fault>
</soapenv:Body>

What's the content-type in the HTTP 500 response from the backend service? (not OSB proxy, but the original source of the fault)
I suspect it is text/plain or just missing. OSB doesn't know it is XML, and so it escapes it.
Vlad

Similar Messages

  • Getting "OSB Service Callout action received SOAP Fault response" on trying to invoke a service using service callout

    I'm trying to invoke a search service using service callout . However on trying to test it , I'm getting this response
    <con:fault  xmlns:con="http://www.bea.com/wli/sb/context">
    <con:errorCode>BEA-382500</con:errorCode>
    <con:reason>
    OSB Service Callout action received SOAP Fault response
    </con:reason>
    <con:details>
    <con1:ReceivedFaultDetail  xmlns:con1="http://www.bea.com/wli/sb/stages/transform/config">
    <con1:faultcode  xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">soapenv:Client</con1:faultcode>
    <con1:faultstring>Cannot find dispatch method for {}</con1:faultstring>
    <con1:http-response-code>500</con1:http-response-code>
    </con1:ReceivedFaultDetail>
    Please help in resolving this error.
    Thanks,
    Rohit

    you are calling wrong  the Service.
    ¿what kind of service do you have? RPC? Document?
    ir your target service its document, I recommend this:
    1. Test target service with OSB
    2. copy XML request and XML response from the test.
    3. use XML request format that you got at Step 2 in your source service and using it at your "Service Callout".

  • BEA-382501- OSB Service Callout action received an unrecognized response

    Hi,
    I am getting the above response while executing the proxy service which is based on http protocol.
    I am able to get the proper response through the business service, but the same i am not able to get in proxy service.
    For this I have configured one business service based on below parameters.
    Service Type Any XML Service
    Transport Configuration
    Protocol http
    Load Balancing Algorithm round-robin
    Endpoint URI http://01hw146484:8080/SpringFileUpload/testservlet?name=pratik
    Retry Count 0
    Retry Iteration Interval 30
    Retry Application Errors Yes
    HTTP Transport Configuration
    Read Timeout 0
    Connection Timeout 0
    HTTP Request Method GET
    Authentication None
    Proxy Server
    Follow HTTP redirects Disabled
    Use Chunked Streaming Mode Enabled
    Proxy service on below parameters:
    Service Type Any XML Service
    Transport Configuration
    Protocol http
    Endpoint URI /SMSProxy/PS_SMS_BasedOnBS
    Get All Headers No
    Headers
    HTTP Transport Configuration
    HTTPS required No
    Authentication None
    Message Handling Configuration
    Transaction Required Disabled
    Same Transaction For Response Disabled
    Content Streaming Disabled
    XOP/MTOM Support Disabled
    Page Attachments to Disk No
    I am using service call out to call the business service, but not able to get the any response using the proxy. my business service is working properly.
    Please let me know where i am doing mistake.
    Edited by: truptipatil on Jan 12, 2012 3:07 PM

    Hi,
    even if I am adding a service error handler, I am getting the same error, I don't why proxy is not able to get the proper response.
    I am getting the below error.
    <BEA-000000> < [PipelinePairNode1, PipelinePairNode1_request, stage1, ERROR] <con:fault xmlns:con="http://www.bea.com/wli/sb/context">
    <con:errorCode>BEA-382501</con:errorCode>
    <con:reason>OSB Service Callout action received an unrecognized response</con:reason>
    <con:details>
    <con1:UnrecognizedResponseDetail xmlns:con1="http://www.bea.com/wli/sb/stages/transform/config">
    <con1:http-response-code>200</con1:http-response-code>
    </con1:UnrecognizedResponseDetail>
    </con:details>
    <con:location>
    <con:node>PipelinePairNode1</con:node>
    <con:pipeline>PipelinePairNode1_request</con:pipeline>
    <con:stage>stage1</con:stage>
    <con:path>request-pipeline</con:path>
    </con:location>
    </con:fault>>
    Any help in this regards, is highly appreciated.

  • OSB Service Callouts - HTTP Threads

    Hi All,
    We are having issues with OSB service callouts calling the business services from the Proxy Services. Due to excessive usage of Service Callouts, the proxy services are hanging out in the OSB server. From the Proxy services,we could able to successfully invoke the business services ( SOA Composistes , EJB Webservices etc ) and the webservices are taking few milliseconds to process the requests,but the response is not reaching the OSB Proxy Service. Ideally the behaviour is not happening for all requests, but for few messages. We have set up a dedicated Worker manager ( 10 Min Threads ) in the Admin Console and mapped the Worker manager to the business services ( dispatch policy ),but with no luck. We have followed the below link and its not working.
    http://allthingsmdw.blogspot.co.uk/2012/09/osb-service-callouts-and-oql-part-3.html
    Request to help us incase if you happen to see this behavior earlier.
    Thanks,
    Phani

    Hi Phani,
    It is a known issue with ALSB/OSB. There is a documentation in oracle as well regarding that "ALSB/OSB - Proxy Service Callout Causes Stuck Threads Under High Load [ID 861724.1]".
    Symptoms
    Stuck threads when calling a proxy service with a service callout /publish under high load. Proxy services using only ROUTE work without problems.
    Cause
    The service callout instantiates a new thread.
    As the proxy services are running in the default thread pool there will be no thread available for the callout under high load because all threads are blocked by the proxy services waiting for the response.
    This is expected behavior when using a service callout action and can be resolved by correct thread tuning.
    Solution
    A separate Workmanager needs to be configured for the Proxy service. This can be done by using the Dispatch Policy for specific proxy services (JMS, WS ..).
    For detailed information go to the OSB transport specific documentation and look for Dispatch Policy.
    There you will also see the link to the WLS Workmanager documentation.
    Please create a Workmanager using <max-threads-constraint> to limit the number of parallel executing proxies.
    Using this configuration the proxy will not block threads in the default queue.
    The service callout will still use the threads from the default thread pool.
    Hope this helps.
    Regards,
    Karan
    http://learn-oraclesoa.blogspot.com/

  • BEA-382502 -- OSB Service Callout action received an error response

    Hi,
    I am trying to develope a simple application with two proxy services and Business services. The first proxy sevice communicates with the second one which in turn communicates with Business service.
    I am receving this error during the communication between the proxy services.
    I have tried enabling both "configure Soap body" and "configure payload document" to pass the request from one proxy service to other. In either case am receving the same error. Can you please help me here.
    Thanks in Advance,
    Mahi
    Edited by: Mahidhara on Sep 23, 2009 12:33 AM

    Hey all,
    I have solved problem with help of one my friend..Actually its possible through routing the service. I agree its a different approach than service callout but it acts as a quick fix.
    The key issue is to map :
    1. Request in format of Proxy service schema to Request of Business service (Legacy service-In this case Siebel)
    2. Response in format of Proxy service schema to Response of Business service (Legacy service-In this case Siebel)
    This is possible using XQuery transformation.
    Steps to achieve this::
    1. Create a XQuery by mapping proxy service schema and business service schema.
    2. Now Create message flow as following: Proxy service-->Pipeline Pair-->Stage1-->Route to business service.
    3. Now in stage1, choose Add an action-->Message processing-->Replace.
    4. In replace, do this - Replace ./* in variable body by Xquery which you created in 1.
    This will work smoothly.
    If any problems, let me know. If any insights on above, please comment.
    Will update this thread whenever I get info about service callout working. Meanwhile anybody searching for quick fix, can use this.
    Thanks and Regards,
    Swapnil Kharwadkar.

  • Service Callout Action in OSB

    Hi ,
    Good morning to all
    I have issue on osb service callout.
    1. i developed a synchronous service using bpel after that i invoke that service in osb as business service. my aim by using service callout action to call that service and get response.
    but the problem is how pass the osb input request to bpel input request and also how to transform the bpel response data to osb response data...
    Thanks and regards
    venky

    Venky,
    the problem is how pass the osb input request to bpel input request and also how to transform the bpel response data to osb response data...You can transform the OSB request structure to bpel service request structure using Xquery/Xslt transformations either by using replace action or assign action ( replacing the $body as per Bpel request format ) before sending the request to Bpel in service call out.
    And in similar manner after getting the response from Bpel service use Xquery/Xslt transformation & using replace action to transform bpel response back to OSB response format.
    Regards,
    Abhinav Gupta
    Edited by: Abhinav on Dec 5, 2012 11:49 AM

  • Implementation of OSB service to Http GET XML payload

    Hi,
    I am new to OSB.I have a requirement where Ecommerce system will post a XML over HTTP.
    Our OSB service has to receive that XML using Http GET and send it to a SOA composite as a SOAP.
    My doubt are
    1.can we implement the proxy service with service type any XML structure
    2.Will Ecommerce provide any WSDL so that we can configure it in our proxy service.
    Pls help.
    thanks

    Hi,
    947423 wrote:
    1.can we implement the proxy service with service type any XML structureYes, that should be alright...
    2.Will Ecommerce provide any WSDL so that we can configure it in our proxy service.\Probably not, if they are just sending an XML over HTTP that is probably not SOAP, if at least they can provide you an XSD that would be nice... Otherwise you may have to write one...
    Cheers,
    Vlad
    It is considered good etiquette to reward answerers with points (as "helpful" - 5 pts - or "correct" - 10pts)
    https://forums.oracle.com/forums/ann.jspa?annID=893

  • How to do a service callout to a service with/without MTOM support

    I have a problem trying to call a business service from a proxy service as a service callout related to MTOM.
    Specifically, the service I have is a Java based web service with the following signature:
    void archive(byte[] bytes, String fileName)
    When the WSDL is generated it maps the byte array to base64Binary as follows:
    <xs:element name="archive">
    <xs:complexType>
    <xs:sequence>
    <xs:element name="bytes" type="xs:base64Binary"/>
    <xs:element name="fileName" type="xs:string"/>
    </xs:sequence>
    </xs:complexType>
    </xs:element>
    Now in order to call this I try to build the XML payload withint the proxy message flow and I get this (from the logger):
    <8/06/2009 01:07:12 PM NZST> <Debug> <AlsbStagesTransformRuntime> <BEA-000000> <Service callout request payload:
    <archive xmlns="http://mtm.oracle.com/tools">
    <bytes>
    <con:binary-content ref="cid:518df4b0:121bd6029c5:-7fd9" xmlns:con="http://www.bea.com/wli/sb/context"/>
    </bytes>
    <fileName>RQRETMAINT20090608130711.csv</fileName>
    </archive>
    as you can see the bytes are being passed by reference and then when the service is called I get the following ("*non-MTOM endpoint received a MTOM message*") error:
    <8/06/2009 01:07:13 PM NZST> <Debug> <AlsbPipeline> <BEA-000000> <RegistryOutbound_SB_New/ProxyServices/ftpRqRetMaintToRegistry: +PipelineContextImpl.generateFault - messageID:2169050999921023879-518df4b0.121bd6029c5.-7fdc, errorCode:BEA-382500, errorReason:OSB Service Callout action received SOAP Fault response, errorDetails:<xml-fragment xmlns:con="http://www.bea.com/wli/sb/stages/transform/config">
    <con:faultcode xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">soapenv:Server</con:faultcode>
    <con:faultstring>[Server CodecHandler] Failed to decode
    -> non-MTOM endpoint received a MTOM message</con:faultstring>
    <con:detail>
    <bea_fault:stacktrace xmlns:bea_fault="http://www.bea.com/servers/wls70/webservice/fault/1.0.0" xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">weblogic.wsee.codec.CodecException: non-MTOM endpoint received a MTOM message
         at weblogic.wsee.codec.soap11.SoapCodec.decode(SoapCodec.java:170)
         at etc
    </bea_fault:stacktrace>
    </con:detail>
    <con:http-response-code>500</con:http-response-code>
    </xml-fragment>>
    So it seems the business service expects the "bytes" passed by value whereas the proxy is passing by reference. I tried changing the proxy to not use MTOM by disabling XOP/MTOM support in the Message Content tab (actually I did this in the proxy that calls the one in question since it uses the local transport and so doesn't have such a tab) and leaving it enabled but pass by value and it had no effect for some reason.
    I've read the User Guide section on MTOM support but it was not that helpful so any pointers to better information would be much appreciated.
    regards
    Edited by: mdsrobbins on Jun 8, 2009 1:44 PM

    Can you test back-end MTOM end point through a route node and see if its working? I doubt the issue has nothing to do with SC but with the MTOM end-point implementation.
    non-MTOM endpoint received a MTOM message") error: hints that the service call out is sending a mtom message but the end-point is not accepting the message
    Manoj
    Edited by: mneelapu on Jun 8, 2009 11:25 AM

  • Where is a simple example of using a service callout?

    I am using the oracle service bus and am need to obtain the result string from a webservice.
    1)
    I am using a service callout in one of the stages:
    Service Callout to D2L Webservices invoking getOrgRole
    Configure Payload Document is checked
    Request Document Variable:      $body
    Response Document Variable: $body
    SOAP Request Header:      
    SOAP Response Header:
    Request Action Assign $body/enterprise/person/sourcedid/id/text() to variable inData
    Response Action:
    2) I need to configure the payload so $body/enterprise/person/sourcedid/id/text() is passed to the Request Document Variable. How do I do that?
    3) what do I use to get the retrun string from the webservice?
    4) I am getting a BEA-382500 error.
    <con:reason>
         OSB Service Callout action received SOAP Fault response
         </con:reason>
         <con:details>
         <con1:ReceivedFaultDetail      xmlns:con1="http://www.bea.com/wli/sb/stages/transform/config">
         <con1:faultcode      xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">soapenv:Client</con1:faultcode>
         <con1:faultstring>Cannot find dispatch method for {}</con1:faultstring>
    5) where is a simple example of calling a webservice from a message flow in oracle service bus?

    3) what do I use to get the retrun string from the webservice?If the web service call is successful, the response is stored in the context variable *$body*
    4) I am getting a BEA-382500 error.
    <con:reason>
         OSB Service Callout action received SOAP Fault response
         </con:reason>
         <con:details>
         <con1:ReceivedFaultDetail      xmlns:con1="http://www.bea.com/wli/sb/stages/transform/config">
         <con1:faultcode      xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">soapenv:Client</con1:faultcode>
         <con1:faultstring> Cannot find dispatch method for {} </con1:faultstring>Looks like there is a problem in the operation you are trying to invoke via the business service. Also please verify the exact message going out of the wire to the Backend Webservice.
    Are yo able to invoke the backend service directly from soapUI or similar tool? If yes, you can enable tracing on the Business service and capture the request sent out from OSB and compare the same with the one that works in soapUI. This should lead you to the exact issue.
    5) where is a simple example of calling a webservice from a message flow in oracle service bus?Please refer to http://www.oracle.com/technetwork/middleware/service-bus/osbsamples-085201.html for the samples.
    Hope this helps.
    Thanks,
    Patrick

  • How to do service callout with the incoming JMS message in OSB 11g

    Hello All,
    I have a specific requirement for which I am creating a kind of POC where I need some help in OSB, however am new to OSB.
    My Environment:
    1> I have a request queue (deployed on a WLS domain) - WFReq_WS
    2> I have a response queue (deployed on a WLS domain) - WFRes_WS
    3> I have created a ProxyService (request/response type) in OSB 11g which is simply mapping the incoming message in WFReq_WS to WFRes_WS
    4> I have a WebService (it is currently a simple hello WebService for testing) which takes a string and returns the same string with an added 'Hi' in front of it (e.g. If you send Jack, it will return 'Hi Jack')
    My Requirement:
    1> I have to do some mechanism in OSB, by which while mapping the message from WFReq_WS to WFRes_WS (through the proxy service I have), it will pick the JMS message (which will be a string/text) and will make a service callout to the Webservice I mentioned using the message as the input parameter of the WebService.
    2>Now when the response of the WebService will come, OSB should send this response as the message in the response queue (WFRes_WS) I mentioned above.
    To simplify the requirement using an example:
    A> I will send a text/String message (say Jack) to the request queue (WFReq_WS)
    B> OSB should pick the message (Jack) and make a service callout to the webservice
    C> webservice will return 'Hi Jack'
    D> OSB should send this to the response queue (WFRes_WS)
    I know the above might look very basic question to the PROs, but please elaborate (step by step) what need to be done, since I do not know OSB.
    Thanks a lot for your help !

    Your example points A and D are easily done by having a "Proxy Service" which has the following details:
    Service Type = Messaging Service
    Request and Response type = Text
    Protocol = jms
    Endpoint URI = your request queue (format like 'jms://localhost:7013/weblogic.jms.XAConnectionFactory/QueueJNDIName')
    Checkmark "response" so that the proxy service automatically delivers the response to another queue - your response queue
    Response URI = jms://localhost:7013/weblogic.jms.XAConnectionFactory/QueueResponse
    Now since your "Hello" webservice is (probably) a SOAP xml service you need to "convert" your text based JMS message to xml before sending it on to the "Hello" service.
    Your JMS proxy can do that by just doing a "Assign <whom>{$body/text()}</whom>" to a variable (lets call it 'reqHello')
    Now your JMS proxy should actually call the Hello service and since your JMS proxy is text and the Hello service is SOAP you cannot just "pass" on to the Hello service in a "Route to". Instead you can do a Service Callout where you can specify your "reqHello" variable as payload and a "respHello" as response variable.
    Now you have the "<whom>Hi jack</whom>" in the response variable and since the JMS response needs to be text format you can "extract" the text value into the body variable of the JMS proxy (use "replace /* in body with $respHello/text()" - replace node contents)
    The actual Hello service is a simple "SOAP" based Proxy Service. Add a pipeline and add a stage in the reponse pipeline. Do a ...
    Assign fn:concat("Hi ",$body/whom/text()) to $whomVar
    Replace whom in body with $whomVar (replace node contents)

  • Message procesing OSB rename after service callout error

    Hi,
    I have an error after make a service callout, i can't do a rename in the context variable that i create for the response of the service callout.
    I have this
    SERVICE CALLOUT.
    Service:.....
    Operation:.....
    requestVariable: inputVar
    responseVariable: outputVar
    Rename:
    Xpath:/*/return/items
    Variable:outputVar
    local: someNew
    this a example of outputVar
    <S:Body      xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
    <ns2:buscarSaldosExample xmlns:ns1="http://some.services.finanzas/">
         <return>
         <existWarnings>false</existWarnings>
         <items xsi:type="ns1:resumenSaldo" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
         <categoriaCnt>PERSONAL</categoriaCnt>
         <estadoCnt>A</estadoCnt>
         <saldoCnt>506</saldoCnt>
    </items>
         <name>buscarSaldosExample</name>
         </return>
    </ns2:buscarSaldosExample >
    </S:Body>
    The rename never works out, its like he didn't see the outputVar
    if I make a assing after the service callout and assing all the content in
    outputVar in another variable named outPutVar2 the rename in outPutVar2 works just fine...
    i dont know if this is a mistake in osb or is mine.
    Please help out with this error
    Thanks in advance.
    Gustavo.
    If you need an example, let me knwo and i will post all the details.
    Thanks.

    Hi hisaak, Thanks for the answer again..
    your test was right, is the xpath, if i use //return/items works out fine!. Thanks for that.
    I was reading in some books that // in osb it has to be avoided for perfomance issues, i just
    want to know if /*/*/return[1]/items is the same of //return/items.
    I used baseX6 for testing the Xpaths and Xquerys, and if i put the xml give above as input
    and i try //return/items gives the same result as /*/*/return[1]/items, but it doesn't work out
    in osb, why can be that??
    Thanks agains for your answers.

  • OSB - Problem using the Service Callout control in a proxy service

    Greetings,
    Using a Service Callout control in a proxy service requires to check one of the following two options: Configure SOAP Body or Configure Payload Document. Both require to write SOAP code and to assign it to variables that will be used in the Service Callout control. I found quite inconsistent to have to write SOAP code in order to use a tool which is supoposed to avoid writing Java code. In this case I largely prefer to write Java code and doing things manually. Is there any other way to use this control ?
    Many thanks in advance,
    Nicolas

    I'll try to explain again, however it seems very clear. I'm using a Service Callout control in order to call a JAX-WS web service. This web service is using a "document" style, of course. Consequently, all its operations (messages) are document-centric and they have only one parameter: the document. In order to use tha Service Callout control, one has to construct the <siap:body> element, to assign it to a variable and to provide the name of this variable in the Request Body test field of the Service Callout Properties dialog. Accortdingly, one needs to assign something like:
    <soap:Body xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
    <osb:myOperation xmlns:osb="http://www.simplex_software/fr/">
    <osb: .../>
    <osb:myOperation>
    </soap>
    Now, for those who have understood what I'm talking about, here come the question ? Is that the only way to use the Service Callout control ? If yes, this control is useless. If no, what is the other way to use the control in the given context while avoiding providing a <sopa:body> written manually ?

  • Converting string data from a web service respons into XML structure of XI

    Hi,
    We receive a string structure from a web service.
    The string structure has an xml type format, that is all the tags and its content are in one line .
    The WSDL file of the webservice defines its response structure as a string type.
    How do i convert this string into proper XML structure (predefined by me in Integration repository).
    OR how do i make XI understand this string as an XML structure for further processing.
    Later i have to map this XML message type into IDoc.
    Himani

    Hi Himani,
    Please find the code for ur requirement -
    String need to parse -<response_webservice><from_date>20080101</from_date><to_date>20080202</to_date></response_webservice>
    Below mentioned code will convert it to -<MT_DATA><FROMDATE>20080202</FROMDATE><TODATE>20080101</TODATE></MT_DATA>
    Create a Message type and map it like this using java mapping ( no need to use Graphical mapping).
    Use MT_DATA as source and map it to your target structure .
    import java.io.FileInputStream;
    import java.io.IOException;
    import java.io.StringReader;
    import java.util.HashMap;
    import java.util.Map;
    import javax.xml.parsers.DocumentBuilder;
    import javax.xml.parsers.DocumentBuilderFactory;
    import javax.xml.parsers.FactoryConfigurationError;
    import javax.xml.parsers.ParserConfigurationException;
    import javax.xml.transform.TransformerFactoryConfigurationError;
    import org.w3c.dom.DOMException;
    import org.w3c.dom.Document;
    import org.w3c.dom.Element;
    import org.w3c.dom.NodeList;
    import org.w3c.dom.Text;
    import org.xml.sax.InputSource;
    import org.xml.sax.SAXException;
    public class XMLParser {
         private Map param = null;
         public static void main(String[] args) {
              try {
                   XMLParser wdb = new XMLParser();
                   wdb.parse();
              } catch (Exception e) {
                   e.printStackTrace();
         public void setParameter(Map param) {
              this.param = param;
              if (param == null) {
                   this.param = new HashMap();
         public void parse() {
              String document = "<response_webservice><from_date>20080101</from_date><to_date>20080202</to_date></response_webservice>";
              try {
                   Document sdoc;
                   DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
                   // Using factory get an instance of document builder
                   DocumentBuilder db = dbf.newDocumentBuilder();
                   // parse using builder to get DOM representation of the XML file
                   sdoc = db.parse(new InputSource(new StringReader(document)));
                   Element docEle = sdoc.getDocumentElement();
                   NodeList nl = docEle.getElementsByTagName("from_date");
                   Element lstElmnt = (Element) nl.item(0);
                   NodeList nl1 = docEle.getElementsByTagName("to_date");
                   Element fstElmnt = (Element) nl1.item(0);
                   System.out.println(fstElmnt.getFirstChild().getNodeValue());
                   System.out.println(lstElmnt.getFirstChild().getNodeValue());
                   Document tdoc = db.newDocument();
                   Element structure = createElement("MT_DATA", null, tdoc);
                   tdoc.appendChild(structure);
                   Element statement = createElement("FROMDATE", fstElmnt.getFirstChild().getNodeValue(), tdoc);
                   structure.appendChild(statement);
                   Element statement2 = createElement("TODATE", lstElmnt.getFirstChild().getNodeValue(), tdoc);
                   structure.appendChild(statement2);
                   System.out.println("Struct is :::"+tdoc.getDocumentElement().toString());               
              } catch (DOMException e) {
                   // TODO Auto-generated catch block
                   e.printStackTrace();
              }  catch (IOException e) {
                   // TODO Auto-generated catch block
                   e.printStackTrace();
              } catch (FactoryConfigurationError e) {
                   // TODO Auto-generated catch block
                   e.printStackTrace();
              } catch (ParserConfigurationException e) {
                   // TODO Auto-generated catch block
                   e.printStackTrace();
              } catch (SAXException e) {
                   // TODO Auto-generated catch block
                   e.printStackTrace();
              } catch (TransformerFactoryConfigurationError e) {
                   // TODO Auto-generated catch block
                   e.printStackTrace();
         static Element createElement(String elementName, String content,
                   Document document) {
              Element returnElement;
              returnElement = document.createElement(elementName);
              if (content != null) {
                   Text T = document.createTextNode(content);
                   returnElement.appendChild(T);
              return returnElement;
         static Element createElement(String elementName, String content,
                   String attributeName, String attributeValue, Document document) {
              Element returnElement = createElement(elementName, content, document);
              returnElement.setAttribute(attributeName, attributeValue);
              return returnElement;
    Regards,
    Kishore

  • Accessing the SOAP fault received by OSB Service Call Out

    I have a proxy service with multiple OSB service call outs, which access a backend server via SOAP.
    If the backend server returns a fault, the proxy service' exception handling kicks in and the exception handling flow is triggered.
    That flow provides a variable 'fault', which holds the OSB fault information with the BEA fault code.
    The variable holding the service call out response (to which I assume the backend servers fault is written) is not available in the exception handling flow.
    I have multiple service call outs in my flow, all writing their response to different variables.
    Is there any way to access the fault received by the service call out? Is there any variable available in the exception flow, to which that information is written?

    Is there any way to access the fault received by the service call out?Please refer -
    Re: Error Handling OSB
    Regards,
    Anuj

  • BEA-382500: ALSB Service Callout action received SOAP Fault response

    Hi Friends...
    <BR>
    <BR>
    <BR>
    During the implementation of TUTORIAL: 2 Loan Example of AquaLogic Service Bus 2.1,
    I am getting fault response when testing the Proxy Service. Please help me in the following....
    <BR>
    <BR>
    <BR>
    <b>BEA-382500: ALSB Service Callout action received SOAP Fault response</b>
    <BR>
    <BR>
    <BR>
    <b>error: failed to load java type corresponding to t=LoanStruct@java:normal.client</b>
    <BR>
    at
    <BR>
    <BR>
    <BR>
    <BR>
    com.bea.staxb.runtime.internal.FailFastErrorHandler.add(FailFastErrorHandler.java:45)
    at com.bea.staxb.runtime.internal.MarshalStreamUtils.addError(MarshalStreamUtils.java:274)
    at com.bea.staxb.runtime.internal.MarshalStreamUtils.addError(MarshalStreamUtils.java:249)
    at com.bea.staxb.runtime.internal.UnmarshalResult.addError(UnmarshalResult.java:140)
    at com.bea.staxb.runtime.internal.UnmarshalResult.addError(UnmarshalResult.java:124)
    at com.bea.staxb.runtime.internal.UnmarshalResult.getPojoBindingType(UnmarshalResult.java:327)
    at com.bea.staxb.runtime.internal.UnmarshalResult.getPojoTypeFromXsiType(UnmarshalResult.java:310)
    at com.bea.staxb.runtime.internal.RuntimeBindingType.determineActualRuntimeType(RuntimeBindingType.java:256)
    at com.bea.staxb.runtime.internal.UnmarshalResult.unmarshalType(UnmarshalResult.java:210)
    at com.bea.staxb.runtime.internal.SoapUnmarshallerImpl.unmarshalType(SoapUnmarshallerImpl.java:93)
    at weblogic.wsee.bind.runtime.internal.EncodedDeserializerContext.unmarshalType(EncodedDeserializerContext.java:66)
    at weblogic.wsee.bind.runtime.internal.BaseDeserializerContext.internalDeserializeType(BaseDeserializerContext.java:170)
    at weblogic.wsee.bind.runtime.internal.BaseDeserializerContext.deserializeType(BaseDeserializerContext.java:87)
    at weblogic.wsee.codec.soap11.SoapDecoder.decodePart(SoapDecoder.java:401)
    at weblogic.wsee.codec.soap11.SoapDecoder.decodeParams(SoapDecoder.java:236)
    at weblogic.wsee.codec.soap11.SoapDecoder.decodeParts(SoapDecoder.java:163)
    at weblogic.wsee.codec.soap11.SoapDecoder.decode(SoapDecoder.java:116)
    at weblogic.wsee.codec.soap11.SoapCodec.decode(SoapCodec.java:136)
    at weblogic.wsee.ws.dispatch.server.CodecHandler.decode(CodecHandler.java:138)
    at weblogic.wsee.ws.dispatch.server.CodecHandler.handleRequest(CodecHandler.java:39)
    at weblogic.wsee.handler.HandlerIterator.handleRequest(HandlerIterator.java:127)
    at weblogic.wsee.ws.dispatch.server.ServerDispatcher.dispatch(ServerDispatcher.java:85)
    at weblogic.wsee.ws.WsSkel.invoke(WsSkel.java:80)
    at weblogic.wsee.server.servlet.SoapProcessor.handlePost(SoapProcessor.java:66)
    at weblogic.wsee.server.servlet.SoapProcessor.process(SoapProcessor.java:44)
    at weblogic.wsee.server.servlet.BaseWSServlet$AuthorizedInvoke.run(BaseWSServlet.java:165)
    at weblogic.wsee.server.servlet.BaseWSServlet.service(BaseWSServlet.java:84)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
    at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:225)
    at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:127)
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:283)
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:175)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3214)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
    at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
    at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:1983)
    at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:1890)
    at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1344)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:181)
    <BR>
    Message was edited by:
    alwaysvaghu
    Message was edited by:
    alwaysvaghu

    I've been getting this problem as well. However, the thing that confuses me is that if I use the command-line client (as described in the tutorial), everything seems to work fine. However, if I use the test console, it fails to work (giving the fault described in an ancestor of this post).
    I've tried added a 'Rename' operation, but I just get the java1 namespace as well.
    If the problem was just the namespace issue as stated, wouldn't the command-line client have a similar problem?

Maybe you are looking for