OSB body variable modification in Routing

i,
I have a wsdl based proxy service service. The request structure of proxy service as follow:
<qsr:qsrequest xmlns:qsr="http://www.bell.com/qualification/OSB/psqt/qsrequest">
<qsr:queryrequest>
<qsr:senderapp>bellcabbm</qsr:senderapp>
<qsr:transtype>I</qsr:transtype>
<qsr:language>E</qsr:language>
<qsr:querycount>1</qsr:querycount>
<qsr:query>
<qsr:reqIdent>0033234566</qsr:reqIdent>
</qsr:query>
<qsr:provCd>ON</qsr:provCd>
</qsr:queryrequest>
</qsr:qsrequest>
From this proxy I have to route a business service. So I have to modify body variable from above structure to following structure
<qsrequest xmlns="http://www.cgi.com/qualification/dto/psqt/qsrequest">
<queryrequest>
<senderapp>bellcabbm</senderapp>
<transtype>I</transtype>
<language>E</language>
<querycount>1</querycount>
<query>
<reqIdent>003107150</reqIdent>
</query>
<provCd>ON</provCd>
</queryrequest>
</qsrequest>
Please suggest how I can modify body variable from 1st structure to 2nd structure.
Thanks,
Angshuman

You can create an XSLT or XQuery selecting source and target schema of the XMLs you mentioned above and configuring wires connecting source and target elements. XQuery would be easier to implement as there is a graphical mapper for XQuery in OEPE.
See this link for help:
Transforming Data Using XQuery Mapper

Similar Messages

  • OSB: Body variable is coming inside CDATA in the routed proxy

    Hi All,
    I have to send some data from one proxy (a.proxy) to another proxy (b.proxy) for sending email. For that , i am using Publish action in first proxy(a.proxy) ,which is using business service(b-ref.biz) which eventually calls another proxy(b.proxy) where i need the data from first proxy. For that ,i am replacing $body variable with desired data in a.proxy like $body is being replace by :
    <body>
    <emailRequest>
    <subject>emailXubject</subject>
    <content>emailContent</content>
    </emailRequest>
    </body>
    If i am checking this replacement in a.proxy, it is replacing $body variable perfectly fine.
    But when i am accessing $body variable in b.proxy, $body variable coming like this :
    <body>
    [[cdata]
    <soapenv-envlope>
    <body>
    <emailRequest>
    <subject>emailXubject</subject>
    <content>emailContent</content>
    </emailRequest>
    </body>
    <soapenv-envlope>
    ]</body>
    I am not sure why body is coming inside another body with CDATA tag.
    Please help me on this.
    Thanks in advance.
    Edited by: 986307 on Feb 5, 2013 10:45 AM

    Replacement in a.proxy as below :
    Replace [ node contents ] of [ . ]
    in [ body ] with [ <emailContent>... ]
    <emailContent>
    <subject>Dynamic subject</subject>
    <content>{$BenefectorEmailContent}</content>
    <contentType>html</contentType>
    <sourceSystem>niit</sourceSystem>
    <recipientEmailID>{$getMemberContributorResponse/hit:return/hitxsd:email}</recipientEmailID>
    <senderEmailID>[email protected]</senderEmailID>
    </emailContent>
    And the body in next proxy is as below:
    <soapenv:Body xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
    <soapenv:Envelope><soapenv:Header xmlns:urn="urn:www.virginaustralia.com:service:partner:loyalty:MemberRelationshipMediatorMsg:v10">
    <urn1:TransactionRequestHeader xmlns:urn1="urn:www.virginaustralia.com:schema:cdm:utility:Transaction:v10"><rc:RequestContext xmlns:rc="urn:www.virginaustralia.com:schema:cdm:utility:RequestContext:v10"><rc:OriginatingRequest><rc:InternalId>268232b6-cec6-42a5-87cf-f6a27bb37395</rc:InternalId><rc:ReceivedTimestamp>2013-02-06T15:30:10.442+05:30</rc:ReceivedTimestamp></rc:OriginatingRequest></rc:RequestContext></urn1:TransactionRequestHeader>
    </soapenv:Header>
    <soapenv:Body wsu:Id="Body-Ip5BHFcGt0yQmRNNmRztAA22" xmlns:urn="urn:www.virginaustralia.com:service:partner:loyalty:MemberRelationshipMediatorMsg:v10" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"><emailContent><subject>Dynamic subject</subject><content><![CDATA[<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html>
    <body style="font-family:arial; font-size:12px">
    Dear MR JACK,
    <p>
    We are pleased to confirm that your Family Pooling request has been approved.
    </p>
    <p>Kind Regards,
    </p>
    <p>Velocity Frequent Flyer Team</p>
    </body>
    </html>]]></content><contentType>html</contentType><sourceSystem>niit</sourceSystem><recipientEmailID><ax28:email xmlns:ns="http://hititcs.com" xmlns:ax28="http://hititcs.com/xsd" xmlns:ax23="http://io.java/xsd" xmlns:ax21="http://Common.UtilityPack/xsd" xmlns:ax22="http://rmi.java/xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">[email protected]</ax28:email></recipientEmailID><senderEmailID>[email protected]</senderEmailID></emailContent>
    </soapenv:Body>
    </soapenv:Envelope>
    </soapenv:Body>

  • OSB: Context variable changes for 'Reply' action

    HI,
    What are the differences between changes done by OSB to any of the context variables(body, inbound, outbound etc) when Reply with Success is used and Reply with failure is used.
    I have a Proxy service A consuming another proxy service B by RouteTo.
    When B has Reply with Success, A gets the response and fault does not get the generated within A.
    But when B has Reply with Error, fault gets generated within A.
    In both the cases,response xml that B is sending is same. So, what is that which makes fault generation within A. How would A know that fault is to be generated.
    Please help in understanding.
    TIA.
    Edited by: Ashish Rane on Dec 21, 2012 6:01 AM

    A Reply action will always return the content of $body variable as it is. The different between Reply with Success and Reply with failure lies in the content of transport headers being returned. In case of HTTP Service, if you do a reply with success, the calling service/application will received HTTP status code 200 or 0, which is a success status code for HTTP. In case of Reply with Failure, calling service/application will receive HTTP status code 500, which will enable the error handling in calling service/application to trigger. The best practice for SOAP based services is to always replace content of $body with a SOAP Fault when doing a Reply With Failure so that the calling application received details of fault (otherwise it just gets transport status code for failure but content of reply will still be original content of $body which might not indicate what the error was)

  • Apex listener, POST, internal body-variable

    Hello,
    I am using Apex-Listener 1.1.2.131.15.23 on SUSE Linux 11.3./Oracle XE 10. I created a Resource Template with POST-methode and the following pl/sql-block:
    declare
    l_nuLen1 number;
    l_nuLen2 number;
    begin
    l_nuLen1 := length(:body);
    l_nuLen2 := dbms_lob.getLength(:body);
    :status := triple.coxSmsAt.fSetResponse(:contentType || '(' || to_char(length(:contentType)) || ')',to_char(l_nuLen1) || '/' || to_char(l_nuLen2),:body);
    end;
    In my STF on the database there is no problem to get the value of :contentType. But if I want to access to the :body-variable most of the tries ended in a server-error. With the PL/SQL-block above there is no server-error but the result is l_nuLen1 = 5, l_nuLen2 = 0 and no value apears in the fSetResponse-StoredFunction for :body.
    Can someone help me?
    Thanks
    Martin

    Well the idea behind APEX (Application Express ) is that you can develop mostly declarativly. This is what a RAD tool/framework should do. You seem to think that your requirements somehow force you to send your own constructed code to the listener. Why? Apex in general is very good at hiding this logic from you. Maybe instead of asking a deeply technical question, start by explaining what you want to achieve (business language not technical explaination!). Then lets talk how to use Apex in a normal way to achieve the same result. This might even help you to develop better stuff in faster time.
    Edited by: Sven W. on Sep 10, 2012 4:20 PM - typo corrections
    Your requirement would violate several standard design principles. One should not do so without good reasoning.
    Consider this link: http://effectivesoftwaredesign.com/2012/02/05/separation-of-concerns/
    Edited by: Sven W. on Sep 10, 2012 4:24 PM

  • Package body variable- is it always safe to use it?

    In a package spec i have a function "function1" and in package body this functions does following:
    1) it evaluate/calculate a variable/value "Flag1".
    2) it calls 4 (package body) functions that needs to use value "Flag1".
    I have forgotten how "package body variables" work. Is it safe to declare variable "Flag1" in a "package body" level? So that "function1" can initialize this variable and 4 functions can use this variable later too. Or it is not safe if i have lot of sessions in my database which may go into conflict with sharing this "flag1"? And i perhaps better send "flag1" as function parameter to all 4 functions?

    Easy enough to test, but it depends on what you mean by the "next run".
    In the same session:
    SQL > CREATE PACKAGE p AS
      2     FUNCTION f1(p_v1 IN NUMBER) RETURN NUMBER;
      3  END;
      4  /
    Package created.
    SQL > CREATE PACKAGE BODY p AS
      2     g_var VARCHAR2(10);
      3
      4  FUNCTION f2(p_v2 IN VARCHAR2) RETURN NUMBER IS
      5  BEGIN
      6     DBMS_OUTPUT.Put_Line('Value of g_var in f2 is: '||g_var);
      7     RETURN 1;
      8  END;
      9
    10  FUNCTION f1 (p_v1 IN NUMBER) RETURN NUMBER IS
    11     l_res NUMBER;
    12  BEGIN
    13     DBMS_OUTPUT.Put_Line('Value of g_var at start f1 is: '||g_var);
    14     SELECT dummy INTO g_var FROM dual;
    15     l_res := f2(g_var);
    16     g_var := 'A';
    17     DBMS_OUTPUT.Put_Line('Value of g_var at end f1 is: '||g_var);
    18     RETURN l_res;
    19  END;
    20  END;
    21  /
    Package body created.
    SQL > var v number;
    SQL > exec :v := p.f1(1);
    Value of g_var at start f1 is:
    Value of g_var in f2 is: X
    Value of g_var at end f1 is: A
    PL/SQL procedure successfully completed.
    SQL > exec :v := p.f1(2);
    Value of g_var at start f1 is: A
    Value of g_var in f2 is: X
    Value of g_var at end f1 is: A
    PL/SQL procedure successfully completed.but after running it in one session, then doing the "next run" in a different session:
    SQL > exec :v2 := p.f1(1);
    Value of g_var at start f1 is:
    Value of g_var in f2 is: X
    Value of g_var at end f1 is: A
    PL/SQL procedure successfully completed.John

  • How to pass OSB fault variables into input payload

    Hi ,
    I am very new to OSB. as we know that OSB has some predefined variable structure like body,header, fault,inbound,outbound,..My requirement is that I want pass the fault variable elements(errorCode,reason,details..) to input payload elements. I want to see the faulted data in my payload elements which is generated by fault variables.
    Ex:-> If any validation fault occur then my payload fault variables will display errorCode---->BEA-382525, errorMessage-->Variable targeted for validate is not XML or MFL..
    Could you please help me out.I tried but i did not get the result what I expected .. Thanks in advance
    Thanks,
    Viswas

    Hi Vlad,
    I tried what you said in the Otherwise section.
    Step 1:-->This is my xQuery code:
    declare namespace ns1 = "http://www.bea.com/wli/sb/context";
    declare namespace ns0 = "http://xmlns.itc.com/emf/xsd/04/2013/v1.0/loggingService";
    declare namespace xf = "http://tempuri.org/GreetingService/xquery/faultToGreetingService/";
    declare function xf:faultToGreetingService($fault1 as element(ns1:fault))
        as element(ns0:logInfo) {
            <ns0:logInfo>
                <ns0:HeaderInfo>
                    <ns0:faultCode>{ data($fault1/ns1:errorCode) }</ns0:faultCode>
                </ns0:HeaderInfo>
            </ns0:logInfo>
    declare variable $fault1 as element(ns1:fault) external;
    xf:faultToGreetingService($fault1)
    Note: My requirement is I want pass this errorCode into ns0:faultCode which is the input element for publish action (This is publish action would call the logging Service, It is one-way process)
    Step2:-->I used a replace action-->XQuery Resource tab--> I browse the xQuery ..Here In the Variable Name section it is showing fault1 and what value we need to give in the Binding section.
              a)  If i did not provide any value it is giving the error message as "XQuery expression validation failed:XQuery error for the variable "fault1": line1,column1:                                 {err}XP0003:invalid...  "            
              b) If i provide $fault1 or $fault1/*:errorCode or $body in Binding section then the public action would not calling the logging service.
    Can anybody provide me the answer.
    Thanks,
    Viswas

  • Changing the namespace prefix in OSB body content

    I would like to change the namespace prefix of the namespace in the content of the Body in OSB (Replacing g: with dg:)
    For example:
    <g:Information>
    <g:firtName>John<g:firstName>
    <nc:date>1970-01-01<nc:date>
    </g:Information>
    should become
    <dg:Information>
    <dg:firtName>John<dg:firstName>
    <nc:date>1970-01-01<nc:date>
    </dg:Information>
    Any idea how can I do this?

    Re: Namespace replace/rename issue in ALSB
    Regards,
    Anuj

  • OSB 11g Variable Creation

    Hi,
    The title is rather self-descriptive, but I'll elaborate a bit anyway. I'm receiving data from a local proxy service in and performing validation on it. After validation,the data has to be transformed into two target formats, i.e. the validating proxy service calls on two separate business services in sequence. So, I'm trying to store the incoming data into a variable using assign activity, and then transform this data into two separate formats and publish them to the appropriate business service. However, server logs reveal that the publish activities do not occur. Could anyone please enlighten me as to what I'm doing wrong?

    Yeah, that's what I'm doing. And Unit testing for the business services show that they are working fine, so no issues there. Now, what I'm attempting to do is as follows:
    1. I've set up a pipeline in the proxy service message flow.
    2. In the first stage. I'm copying the contents of $body into a variable $temp.
    3. In the second stage, I'm performing business validations on the data in $body.
    4. If stage 2 doesn't throw an error, in the following two stages I'm applying Xquery Transform on $temp and passing the data to $body in a replace activity.
    5. I'm checking the JMS Queue, and finding nothing.
    6. I'm going crazy.

  • Local variable modification/access events in JPDA?

    Dear Folks,
    I am wondering if I can monitor modification/access events for local variables in JPDA. I used to use JDI as a tool to implement my project, but unfortunately there were only modification/access events for fields. Could someone tell me whether JVMTI (or any other tool from Sun) supports this?
    Another problem when I was using JDI is that given an ObjectReference, I was not able to retrieve the underlying object in the target VM? Does there exist any solution to this problem?
    Thank you very much for your help!
    Sunny

    Hello,
    There are no such JVM TI watchpoint events yet.
    Please, see the RFE:
    4228507 Add local variable and array element watchpoints
    Thanks,
    Serguei

  • OSB - global variable substitute?

    I have a simple-looking requirement - I need to keep a single String value between OSB service calls. The value is retrieved from a message and is inserted into each upcoming message of the service, acting much like a simple cache. My question is, OSB lacking global variables, what are the options for keeping this String value in?
    (cluster-wide deployment is no concern here, we can think of it as a single-node problem)

    Re: Are there global variables in OSB??
    Re: OSB: What is best practice for reading configuration information
    OSB is lacking concept of global variable. But the use case can be accomplished with little or no effort using OSB constructs (Java callout, implementing this logic in separate service etc )
    Manoj

  • Query variable modification transport

    I modified a query variable description in RRMX and a change request (let's call it CR1) gets created.  But I wonder if I should go to RSA1 Transport Connection to add the variable to CR1?  and how?  I used to do this before quite a while ago and don't remember.  Anyone's answer is greatly appreciated!

    I go to RSA1 Transport Connection and locate the query variable and find that the CR number I mentioned above is listed under the column of Transport Request, that means I don't have to take any action, right?
    I also go to SE09, find the CR number, but find the following under it:
    Elements of the Query Builder
         3V1YMXBY0TW59BDED9632UZ05
         3V1YMXJMJSHURXWUJ38FCWXPX
         3V1YMXRB2R3KAKGAOXARMYWFP
         3V1YMXYZLPP9T6ZQURD3X0V5H
         3V1YMY6O4OAZBTJ70LFG72TV9
         3V1YMYECNMWOUG2N6FHSH4SL1
         3V1YMYM16LIED2M3C9K4R6RAT
         3V1YMYTPPK43VP5JI3MH18Q0L
         3V1YMZ1E8IPTEBOZNXOTBAOQD
         3V1YMZ92RHBIWY8FTRR5LCNG5
         3V1YMZGRAFX8FKRVZLTHVEM5X
         3V1YMZOFTEIXY7BC5FVU5GKVP
         3V1YMZW4CD4NGTUSB9Y6FIJLH
         3V1YN03SVBQCZGE8H40IPKIB9
         3V1YN0BHEAC2I2XOMY2UZMH11
         3V1YNI1142DWG1RY39H665IGL
         3WHDEB8V8U67QMLG3GCHWS7UD
         3WHM6ATJPZQ1ZHELM3DG5URAT
    I can't tell if it contains the variable or not from the above lines.
    Thanks

  • OSB - How select variable used as request message in routing to buss. serv.

    I' modelling a message flow for a proxy service.
    Depending on the content of the incoming request message, a branch (conditional) is selected. In this branch the message needs to be routed to a business service.
    This business service has a different request message definition than the proxy service. Some kind of transformation is probably necessary. (not implemented yet)
    Question is how to select what variable structure (I've created a Service Interface variable for the business service) that'll be used when invoking the business service.
    Only thing I can select, is the service and the operation.
    How to continue?

    The payload for the business service needs to be in the *$body* variable. There are also other predefined variables like $header and $attachments that could make sense if your need to send SOAP Headers or attachments to the business service.

  • How to write non-XML data to a file using an OSB FTP Routing?

    Hi --
    Situation ... I need to write non-XML data to a file using FTP. A proxy service retrieves XML and transforms it with XSLT to CSV format, then gives it to a Biz service to file it out, using FTP. Simple.
    Problem ... OSB sends the contents of $body to any service it calls. Because $body is a SOAP document, it has to contain XML. So therefore I have to put my CSV data into an XML element, in order to put it into $body; and this inner element then gets written to the file, which I don’t want. But if I don't enclose my CSV content in a tag, I get "Unexpected CDATA encountered" trying to assign it to a variable.
    There has to be away around this!
    Thanks for your help.
    John Taylor

    Solved. Steps:
    -- Transform the XML to CSV using an XSL transform. Put the CSV data inside enclosing XML elements, and use a Replace action to put the XML element + CSV contents back into *$body*.
    -- Define an MFL transform that only knows about the enclosing XML elements. Use a delimiter of "\n" (hard return).
    -- Route from the proxy service to a Biz service that has Service Type = Messaging Service and Request Message Type = MFL; specify the MFL transform, which will receive the incoming *$body* variable, strip off the enclosing XML element within it, and pass the CSV contents to the FTP service.
    Edited by: DunedainRanger on Nov 29, 2011 9:03 AM

  • OSB problem posting 5MB body to a business service endpoint

    Hello,
    I have an https endpoint they results in a Broken pipe exception after running for about 10mins if I send a SOAP body greater than 5MB. If I send the same request to this endpoint using SOAPUI (no OSB involvement) it works fine and completes in <1min, it only fails through OSB. Also if the request is less than 5MB it works fine through OSB and again completes in <1min.
    I've tried calling a proxy service (through test console and SOAPUI) and the business service (through test console) and all fail with the same broken pipe exception. Below is the constant state of the thread during this 10min period.
    "[ACTIVE] ExecuteThread: '1' for queue: 'weblogic.kernel.Default (self-tuning)'" daemon prio=3 tid=0x02fa6400 nid=0x16 runnable [0xb19fd000..0xb19ffaf0]
    java.lang.Thread.State: RUNNABLE
         at java.net.SocketOutputStream.socketWrite0(Native Method)
         at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92)
         at java.net.SocketOutputStream.write(SocketOutputStream.java:136)
         at com.certicom.io.OutputSSLIOStream.write(Unknown Source)
         at com.certicom.tls.record.WriteHandler.flushOutput(Unknown Source)
         at com.certicom.tls.record.WriteHandler.write(Unknown Source)
         at com.certicom.io.OutputSSLIOStreamWrapper.write(Unknown Source)
         at java.io.BufferedOutputStream.write(BufferedOutputStream.java:105)
         - locked <0xe70af568> (a java.io.BufferedOutputStream)
         at weblogic.net.http.HttpOutputStream.write(HttpOutputStream.java:22)
         at weblogic.utils.io.UnsyncByteArrayOutputStream.writeTo(UnsyncByteArrayOutputStream.java:104)
         at weblogic.net.http.HttpURLConnection.writeRequests(HttpURLConnection.java:162)
         - locked <0xcefd08f8> (a weblogic.net.http.SOAPHttpsURLConnection)
         at weblogic.net.http.HttpURLConnection.writeRequestForAsyncResponse(HttpURLConnection.java:492)
         at weblogic.net.http.AsyncResponseHandler.writeRequestAndRegister(AsyncResponseHandler.java:190)
         at weblogic.net.http.AsyncResponseHandler.writeRequestAndRegister(AsyncResponseHandler.java:152)
         at com.bea.wli.sb.transports.http.HttpOutboundMessageContext.send(HttpOutboundMessageContext.java:313)
         at com.bea.wli.sb.transports.http.HttpTransportProvider.sendMessageAsync(HttpTransportProvider.java:564)
         at sun.reflect.GeneratedMethodAccessor310.invoke(Unknown Source)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:597)
         at com.bea.wli.sb.transports.Util$1.invoke(Util.java:82)
    I am running OSB 10.3.0 on SPARC Solaris using Sun JVM.
    Any ideas/suggestions?
    Many thanks,
    Mike.

    Hello,
    I've tried content streaming but it made no difference. Maybe I've misunderstood content streaming but I thought you use this when body variable in the pipeline pair of a proxy is too big to manipulate in memory. In my scenario this is not a problem (I can report on the body fine just before I route to the business service) the only issue occurs when I call the business service with a request greater than 5MB.
    I've already adjusted the WLS timeouts/message sizes as follows:
    Max Post Size = -1 (although I think this is only used for POST to WLS rather than the other way around)
    Max Message Size = 50000000
    JTA timeout = 60
    The only stack trace is for the broken pipe:
    ####<30-Mar-2010 08:35:57 o'clock BST> <Debug> <AlsbTransports> <int-app-04> <RSPCA_ESB_Server1> <[ACTIVE] ExecuteThread: '3' for queue: 'weblogic.kernel.Default (self-tuning)'> <<anonymous>> <> <> <1269934557943> <BEA-000000> <LoadBalanceFailoverListener.sendMessageToServiceAsync
    com.bea.wli.sb.transports.TransportException: Broken pipe
    at com.bea.wli.sb.transports.TransportException.newInstance(TransportException.java:195)
    at com.bea.wli.sb.transports.http.HttpOutboundMessageContext.send(HttpOutboundMessageContext.java:370)
    at com.bea.wli.sb.transports.http.HttpTransportProvider.sendMessageAsync(HttpTransportProvider.java:564)
    at sun.reflect.GeneratedMethodAccessor327.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at com.bea.wli.sb.transports.Util$1.invoke(Util.java:82)
    at $Proxy60.sendMessageAsync(Unknown Source)
    at com.bea.wli.sb.transports.LoadBalanceFailoverListener.sendMessageAsync(LoadBalanceFailoverListener.java:148)
    at com.bea.wli.sb.transports.LoadBalanceFailoverListener.sendMessageToServiceAsync(LoadBalanceFailoverListener.java:543)
    at com.bea.wli.sb.transports.LoadBalanceFailoverListener.sendMessageToService(LoadBalanceFailoverListener.java:478)
    at com.bea.wli.sb.transports.TransportManagerImpl.sendMessageToService(TransportManagerImpl.java:544)
    at com.bea.wli.sb.transports.TransportManagerImpl.sendMessageAsync(TransportManagerImpl.java:422)
    at com.bea.wli.sb.pipeline.PipelineContextImpl.doDispatch(PipelineContextImpl.java:583)
    at com.bea.wli.sb.pipeline.PipelineContextImpl.dispatch(PipelineContextImpl.java:498)
    at stages.routing.runtime.RouteRuntimeStep.processMessage(RouteRuntimeStep.java:128)
    at com.bea.wli.sb.pipeline.StatisticUpdaterRuntimeStep.processMessage(StatisticUpdaterRuntimeStep.java:41)
    at com.bea.wli.sb.stages.StageMetadataImpl$WrapperRuntimeStep.processMessage(StageMetadataImpl.java:339)
    at com.bea.wli.sb.pipeline.RouteNode.doRequest(RouteNode.java:106)
    at com.bea.wli.sb.pipeline.Node.processMessage(Node.java:67)
    at com.bea.wli.sb.pipeline.PipelineContextImpl.execute(PipelineContextImpl.java:866)
    at com.bea.wli.sb.pipeline.Router.processMessage(Router.java:191)
    at com.bea.wli.sb.pipeline.MessageProcessor.processRequest(MessageProcessor.java:75)
    at com.bea.wli.sb.pipeline.RouterManager$1.run(RouterManager.java:508)
    at com.bea.wli.sb.pipeline.RouterManager$1.run(RouterManager.java:506)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363)
    at weblogic.security.service.SecurityManager.runAs(Unknown Source)
    at com.bea.wli.sb.security.WLSSecurityContextService.runAs(WLSSecurityContextService.java:55)
    at com.bea.wli.sb.pipeline.RouterManager.processMessage(RouterManager.java:505)
    at com.bea.wli.sb.transports.TransportManagerImpl.receiveMessage(TransportManagerImpl.java:371)
    at com.bea.wli.sb.transports.http.HttpTransportServlet$RequestHelper$1.run(HttpTransportServlet.java:279)
    at com.bea.wli.sb.transports.http.HttpTransportServlet$RequestHelper$1.run(HttpTransportServlet.java:277)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363)
    at weblogic.security.service.SecurityManager.runAs(Unknown Source)
    at com.bea.wli.sb.transports.http.HttpTransportServlet$RequestHelper.securedInvoke(HttpTransportServlet.java:276)
    at com.bea.wli.sb.transports.http.HttpTransportServlet$RequestHelper.service(HttpTransportServlet.java:237)
    at com.bea.wli.sb.transports.http.HttpTransportServlet.service(HttpTransportServlet.java:133)
    at weblogic.servlet.FutureResponseServlet.service(FutureResponseServlet.java:24)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
    at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
    at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:292)
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:175)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3498)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
    at weblogic.security.service.SecurityManager.runAs(Unknown Source)
    at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2180)
    at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2086)
    at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1406)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
    java.net.SocketException: Broken pipe
    at java.net.SocketOutputStream.socketWrite0(Native Method)
    at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92)
    at java.net.SocketOutputStream.write(SocketOutputStream.java:136)
    at com.certicom.io.OutputSSLIOStream.write(Unknown Source)
    at com.certicom.tls.record.WriteHandler.flushOutput(Unknown Source)
    at com.certicom.tls.record.WriteHandler.write(Unknown Source)
    at com.certicom.io.OutputSSLIOStreamWrapper.write(Unknown Source)
    at java.io.BufferedOutputStream.write(BufferedOutputStream.java:105)
    at weblogic.net.http.HttpOutputStream.write(HttpOutputStream.java:22)
    at weblogic.utils.io.UnsyncByteArrayOutputStream.writeTo(UnsyncByteArrayOutputStream.java:104)
    at weblogic.net.http.HttpURLConnection.writeRequests(HttpURLConnection.java:162)
    at weblogic.net.http.HttpURLConnection.writeRequestForAsyncResponse(HttpURLConnection.java:492)
    at weblogic.net.http.AsyncResponseHandler.writeRequestAndRegister(AsyncResponseHandler.java:190)
    at weblogic.net.http.AsyncResponseHandler.writeRequestAndRegister(AsyncResponseHandler.java:152)
    at com.bea.wli.sb.transports.http.HttpOutboundMessageContext.send(HttpOutboundMessageContext.java:313)
    at com.bea.wli.sb.transports.http.HttpTransportProvider.sendMessageAsync(HttpTransportProvider.java:564)
    at sun.reflect.GeneratedMethodAccessor327.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at com.bea.wli.sb.transports.Util$1.invoke(Util.java:82)
    at $Proxy60.sendMessageAsync(Unknown Source)
    at com.bea.wli.sb.transports.LoadBalanceFailoverListener.sendMessageAsync(LoadBalanceFailoverListener.java:148)
    at com.bea.wli.sb.transports.LoadBalanceFailoverListener.sendMessageToServiceAsync(LoadBalanceFailoverListener.java:543)
    at com.bea.wli.sb.transports.LoadBalanceFailoverListener.sendMessageToService(LoadBalanceFailoverListener.java:478)
    at com.bea.wli.sb.transports.TransportManagerImpl.sendMessageToService(TransportManagerImpl.java:544)
    at com.bea.wli.sb.transports.TransportManagerImpl.sendMessageAsync(TransportManagerImpl.java:422)
    at com.bea.wli.sb.pipeline.PipelineContextImpl.doDispatch(PipelineContextImpl.java:583)
    at com.bea.wli.sb.pipeline.PipelineContextImpl.dispatch(PipelineContextImpl.java:498)
    at stages.routing.runtime.RouteRuntimeStep.processMessage(RouteRuntimeStep.java:128)
    at com.bea.wli.sb.pipeline.StatisticUpdaterRuntimeStep.processMessage(StatisticUpdaterRuntimeStep.java:41)
    at com.bea.wli.sb.stages.StageMetadataImpl$WrapperRuntimeStep.processMessage(StageMetadataImpl.java:339)
    at com.bea.wli.sb.pipeline.RouteNode.doRequest(RouteNode.java:106)
    at com.bea.wli.sb.pipeline.Node.processMessage(Node.java:67)
    at com.bea.wli.sb.pipeline.PipelineContextImpl.execute(PipelineContextImpl.java:866)
    at com.bea.wli.sb.pipeline.Router.processMessage(Router.java:191)
    at com.bea.wli.sb.pipeline.MessageProcessor.processRequest(MessageProcessor.java:75)
    at com.bea.wli.sb.pipeline.RouterManager$1.run(RouterManager.java:508)
    at com.bea.wli.sb.pipeline.RouterManager$1.run(RouterManager.java:506)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363)
    at weblogic.security.service.SecurityManager.runAs(Unknown Source)
    at com.bea.wli.sb.security.WLSSecurityContextService.runAs(WLSSecurityContextService.java:55)
    at com.bea.wli.sb.pipeline.RouterManager.processMessage(RouterManager.java:505)
    at com.bea.wli.sb.transports.TransportManagerImpl.receiveMessage(TransportManagerImpl.java:371)
    at com.bea.wli.sb.transports.http.HttpTransportServlet$RequestHelper$1.run(HttpTransportServlet.java:279)
    at com.bea.wli.sb.transports.http.HttpTransportServlet$RequestHelper$1.run(HttpTransportServlet.java:277)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363)
    at weblogic.security.service.SecurityManager.runAs(Unknown Source)
    at com.bea.wli.sb.transports.http.HttpTransportServlet$RequestHelper.securedInvoke(HttpTransportServlet.java:276)
    at com.bea.wli.sb.transports.http.HttpTransportServlet$RequestHelper.service(HttpTransportServlet.java:237)
    at com.bea.wli.sb.transports.http.HttpTransportServlet.service(HttpTransportServlet.java:133)
    at weblogic.servlet.FutureResponseServlet.service(FutureResponseServlet.java:24)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
    at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
    at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:292)
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:175)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3498)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
    at weblogic.security.service.SecurityManager.runAs(Unknown Source)
    at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2180)
    at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2086)
    at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1406)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
    Thanks,
    Mike.

  • OSB get the untouched soap header  / body

    Hi
    I have usecase where I need to pass xml signature messages through the OSB. When I create a passthrough proxy and business service without a assign or other operation then the soap message is passed through and the message is valid.
    When I try to get the header and body of the soap message and put this in canonical message and serialize the header and body. then transports this to a other osb server where I try to reconstruct the original message then it fails.
    it looks like when I try to get the $header and $body variable the OSB adds some namespaces to it and changes the message a little bit. Is there a way to get the original header and body.
    thanks Edwin

    Check this blog: /people/william.li/blog/2009/07/30/how-to-read-soap-header-information
    Make sure that your message structure is defined properly so that it even includes the header fields...otherwise it will throw an error....once you get the value in the field then transfer it as you like using the mapping.
    From the above blog:
    The SOAP sender communication channel gives us an option to send the complete SOAP XML, including the header. Then, we just
    need to construct a message type in the Enterprise Service Repository (ESR) or Integration Repository (IR) to represent the XML.
    With that, message mapping can be performed.
    Regards,
    Abhishek.

Maybe you are looking for