OSB question : passing a user defined transport header to a proxy service

Hi All,
I have a proxy service that calls another proxy service. The protocol for the "called proxy service" is set to local. The calling proxy service has a "transport header" action to add a user defined header to the outbound request.
I log the outbound request in the calling proxy service before publishing/calling the other proxy service. It does have header set as expected. But the called proxy service does not get this header.
As a note in the "transport" tab "get all headers" is set to true.
Please suggest
Here is the outbound xml gets printed just before calling the proxy service
<con:endpoint name="BusinessService$userProvisioning$businessService$HttpMessageSender" xmlns:con="http://www.bea.com/wli/sb/context">
<con:service/>
<con:transport>
<con:uri>http://localhost:8064/ProvisioningService/</con:uri>
<con:mode>request-response</con:mode>
<con:qualityOfService>best-effort</con:qualityOfService>
<con:request xsi:type="http:HttpRequestMetaData" xmlns:http="http://www.bea.com/wli/sb/transports/http" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<tran:headers xsi:type="http:HttpRequestHeaders" xmlns:tran="http://www.bea.com/wli/sb/transports">
<tran:user-header name="JMS_BEA_RedeliveryLimit" value="1"/>
<tran:user-header name="JMSDeliveryMode" value="2"/>
<tran:user-header name="JMSExpiration" value="0"/>
<tran:user-header name="JMSMessageID" value="ID:&lt;914937.1294164899050.0>"/>
<tran:user-header name="JMSPriority" value="4"/>
<tran:user-header name="JMSRedelivered" value="false"/>
<tran:user-header name="JMSTimestamp" value="1294164899050"/>
<tran:user-header name="JMSXDeliveryCount" value="1"/>
*<tran:user-header name="reResolvedAddress" value="http://LPF004689:8080/axis2/services/provisioning/"/>*
*<tran:user-header name="reResolvedRegion" value="MB"/>*
<http:Content-Type>application/soap+xml; charset=utf-8</http:Content-Type>
</tran:headers>
<tran:encoding xmlns:tran="http://www.bea.com/wli/sb/transports">utf-8</tran:encoding>
</con:request>
</con:transport>
<con:security>
<con:doOutboundWss>false</con:doOutboundWss>
</con:security>
</con:endpoint>>
And here is the inbound xml getting printed inside the called proxy service
inbound="<con:endpoint name="ProxyService$userProvisioning$proxyService$LocalSoapListener" xmlns:con="http://www.bea.com/wli/sb/context">
<con:service/>
<con:transport>
<con:mode>request-response</con:mode>
<con:qualityOfService>best-effort</con:qualityOfService>
<con:request xsi:type="loc:LocalRequestMetaData" xmlns:loc="http://www.bea.com/wli/sb/transports/local" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<tran:headers xsi:type="loc:LocalRequestHeaders" xmlns:tran="http://www.bea.com/wli/sb/transports"/>
<tran:encoding xmlns:tran="http://www.bea.com/wli/sb/transports">utf-8</tran:encoding>
</con:request>
<con:response xsi:type="loc:LocalResponseMetaData" xmlns:loc="http://www.bea.com/wli/sb/transports/local" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<tran:headers xsi:type="loc:LocalResponseHeaders" xmlns:tran="http://www.bea.com/wli/sb/transports"/>
<tran:response-code xmlns:tran="http://www.bea.com/wli/sb/transports">0</tran:response-code>
</con:response>
</con:transport>
<con:security>
<con:transportClient>
<con:username>&lt;anonymous></con:username>
</con:transportClient>
</con:security>
</con:endpoint>"

Hi,
We are using OSB 11g for sending message to external client.
we are setting Headers "JMSType" in set Transport Header. but Client is not able to recieve the JMSType header at there side.
we have read many forums for the same and turned on
Pass all Headers through Pipeline
Get All Headers
then I put one publish action and keep my "Set Transport Header" inside that. still client is not able to find the same
In out outbound request we can see the header as following.
$outbound = <con:endpoint name="BusinessService$Notification$BusinessService$external$BUSINESSSERVICE:con="http://www.bea.com/wli/sb/context">
<con:service/>
<con:transport>
<con:uri></con:uri>
<con:mode>request</con:mode>
<con:qualityOfService>exactly-once</con:qualityOfService>
<con:request xsi:type="http:HttpRequestMetaData" xmlns:http="http://www.bea.com/wli/sb/transports/http" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<tran:headers xsi:type="http:HttpRequestHeaders" xmlns:tran="http://www.bea.com/wli/sb/transports">
<tran:user-header name="JMSType" value="XXXXXXX">
<http:Content-Type>text/plain; charset=utf-8</http:Content-Type>
</tran:headers>
<tran:encoding xmlns:tran="http://www.bea.com/wli/sb/transports">utf-8</tran:encoding>
</con:request>
<con:response xsi:type="http:HttpResponseMetaData" xmlns:http="http://www.bea.com/wli/sb/transports/http" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<tran:headers xsi:type="http:HttpResponseHeaders" xmlns:tran="http://www.bea.com/wli/sb/transports">
<tran:user-header name="content-description" value="SOAP"/>
<tran:user-header name="content-disposition" value="attachment;filename=&quot;[email protected]&quot;"/>
<tran:user-header name="content-id" value="&lt;[email protected]>"/>
<http:Cache-Control>proxy-revalidate</http:Cache-Control>
<http:Connection>Keep-Alive</http:Connection>
<http:Content-Length>112</http:Content-Length>
<http:Content-Type>text/xml; charset=utf-8</http:Content-Type>
<http:Date>Sun, 02 Sep 2012 04:06:43 GMT</http:Date>
<http:Server>XXXXXXXXXerver>
<http:Set-Cookie><![CDATA[<cookie-values xmlns="http://www.bea.com/wli/sb/transports/http">
<value>JSESSIONID=m2RvGs2_Lvk_AZgyVJIv_e2-vSiFOQFi_mIA_SAPULGAKriCp_hbBD8uC0e8pEXt; Version=1; Path=/</value>
<value>saplb_*=(spspiq_PIQ_00)6487650; Version=1; Path=/</value>
</cookie-values>]]></http:Set-Cookie>
</tran:headers>
<tran:response-code xmlns:tran="http://www.bea.com/wli/sb/transports">0</tran:response-code>
<tran:response-message xmlns:tran="http://www.bea.com/wli/sb/transports">OK</tran:response-message>
<tran:encoding xmlns:tran="http://www.bea.com/wli/sb/transports">utf-8</tran:encoding>
<http:http-response-code>200</http:http-response-code>
</con:response>
</con:transport>
<con:security>
<con:doOutboundWss>false</con:doOutboundWss>
</con:security>
</con:endpoint>

Similar Messages

  • How to add a user defined HTTP header field?

    Hi, everyone!
    I want to add a user defined HTTP header field to a HTTP
    response header.
    I use the following statements in testHeader.jsp
    response.addHeader("myheader", "123");
    response.sendRedirect("middleHeader.jsp");
    in middleHeader.jsp,
    out.print(request.getHeader("myheader"));
    But the output in middleHeader.jsp is null!
    How to add a user defined HTTP header field to a HTTP
    response header? Are there some sample codes?
    Cheers,
    George

    the send redirect actually creates a new request (through the client) and thus a new response
    thus the headers you set in the response are gone for the next request/response
    You can try servletDispatcher.forward

  • Issue in passing Oracle User Defined Types to PL SQL from Websphere Applica

    HI,
    I am facing an issue when trying to pass Oracle collection object(User Defined Types) from Java to PL SQL. The issue happens inside J2EE application which is running inside Websphere Application Server 6.x. My database is Oracle 10g and i am using ojdbc1.4.jar as thin driver.
    The issue is that when i pass the Oracle Object from java side, the attribute values of the collection objects at the Oracle PL SQL side is coming as empty. I have tried the same java code in a standalone application and it works fine. The issue happens only when the application is running inside WAS.
    Anybody has any idea how to pass Oracle User Defined Types from WAS 6.x server to Oracle PL SQL?

    Andy Bowes wrote:
    Hi
    I am using WebLogic 8.14 & Oracle 9i with thin JDBC driver.
    Our application needs to perform the same DB operation for every item in a Java Collection. I cannot acheive the required performance using the standard Prepare & Execute loop and so I am looking to push the whole collection to Oracle in a single invocation of a Stored Procedure and then loop on the database.
    Summary of Approach:
    In the Oracle database, we have defined a Object Type :
    CREATE OR REPLACE
    TYPE MYTYPE AS OBJECT
    TxnId VARCHAR2(40),
    Target VARCHAR2(20),
    Source VARCHAR2(20),
    Param1 VARCHAR2(2048),
    Param2 VARCHAR2(2048),
    Param3 VARCHAR2(2048),
    Param4 VARCHAR2(2048),
    Param5 VARCHAR2(2048),
    and we have defined a collection of these as:
    CREATE OR REPLACE
    TYPE MYTYPE_COLLECTION AS VARRAY (100) OF MYTYPE
    There is a stored procedure which takes one of these collections as an input parameter and I need to invoke these from within my code.
    I am having major problems when I attempt to get the ArrayDescriptor etc to allow me to create an Array to pass to the stored procedure. I think this is because the underlying Oracle connection is wrapped by WebLogic.
    Has anyone managed to pass an array to an Oracle Stored procedure on a pooled DB connection?
    Thanks
    AndyHi. Here's what I suggest: First please get the JDBC you want to work in a
    small standalone program that uses the Oracle thin driver directly. Once
    that works, show me the JDBC code, and I will see what translation if
    any is needed to make it work with WLS. Will your code be running in
    WebLogic, or in an external client talking to WebLogic?
    Also, have you tried the executeBatch() methods to see if you can
    get the performance you want via batches?
    Joe

  • Cannot logon user defined in header variable!

    Dear Guru's
    I'm seeing this this error when I type the URL. "Cannot logon user defined in header variable!"
    I have stopped and sterted the portal.
    I could not find the authschemes.xml (if this is related)
    Thanks,
    EP6 SP2
    Naren

    Hi ,
    Please explain what exactly you want to do ..If you want to use  Header Variables for User Authentication  go through this links
    http://help.sap.com/saphelp_nw2004s/helpdata/en/68/5ddc40132a8531e10000000a1550b0/frameset.htm
    http://help.sap.com/saphelp_nw2004s/helpdata/en/68/5ddc40132a8531e10000000a1550b0/frameset.htm
    Thanks n Regards
    Santosh
    Reward if helpful !!!

  • Using user-defined transport recording routine with table maintenance view?

    Hi,
    I have  a table that is maintained through a maintenance view. I need to record the changes to a dedicated transport object (not TABU) with my own recording routine instead of teh standard recording routine.Could someone tell me which/how the events can be used to achieve this?
    Regards
    Rachana

    Hi Rajeev,
    I have changed TMG to choose the option - User defined routine. And I have created a new transport object in SOBJ for the table. Is this enough to record the object to the transport as the object i defined instead of TABU? Do I need to write some subroutine for any view event to achieve this? Do you mean to use the menu option to include the object to a request?
    I have a bigger problem where this view is actually part of a view cluster. Even in that case is teh above steps enough?
    Regards
    Rachana

  • User-defined http header and com.oracle.httpclient.HttpRequestBuilder

    Hello,
    In Java ME Embedded 8, I would like to send a HTTP request containing a user-defined identifier in the http header (X- header type), using the com.oracle.httpclient package.
           HttpClient client = clientBuilder.build();
            HttpRequestBuilder requestBuilder = client.build(http://my_uri);
            requestBuilder.setHeader(HttpHeader.ACCEPT, "text/plain");
    Here, I would like to add a user-defined header value like :
          requestBuilder.setHeader("MyHeader", "myHeaderValue");
    It seems that there are only pre-defined values available for headers in the com.oracle.httpclient.HttpHeader class.
    Is there any way to add a user-defined header in the request ?
    Thanks in advance.
    Bruno

    Hi Bruno,
    did you try HttpHeader myHeader = new HttpHeader("MyHeader");?
    /Sergey

  • How to pass a user defined table type to stored procedure?

    Hi,
    I am trying to call a stored procedure from Java. The store procedure has three IN parameter, 2 IN/OUT params and 3 OUT parameters. The two IN/OUT parameters are user defined objects. Can anyone tell me how to set these IN/OUT parameters in Java.
    Thanks

    It is database/driver specific so you need to use the specific functionality of the driver (not jdbc) to access it.

  • How to use user-defined packages in JAX-RPC web service

    I am trying to use Object of my class located in my package in jax-rpc webservice,the code is
    package supercomputer;
    import Hello.*;
    public class SuperImpl implements SuperIF
    public String sendParam(String data)
    Temp ob=new Temp();
    int i=ob.get1(10000);
    return data+"returned by supercomputer";
    Temp is located in Hello package,I have jar the Hello package as Hello.jar and has set its classpath in targets.xml of Ant tool.
    The code compiles well and service is deployed successfully,but when i try to call the service from the client its gives me following error.
    [echo] Running the supercomputer.SuperClient program....
    [java] java.rmi.ServerException: Missing port information
    [java] at com.sun.xml.rpc.client.StreamingSender._raiseFault(StreamingSender.java:357)
    [java] at com.sun.xml.rpc.client.StreamingSender._send(StreamingSender.java:228)
    [java] at supercomputer.SuperIF_Stub.sendParam(SuperIF_Stub.java:60)
    [java] at supercomputer.SuperClient.main(Unknown Source)
    I dont know if it deploys why it gives error on client side.
    Please tell how to use user-defined packages and class in jax-rpc service code ,i am not talking about passing user-defined parameters i am just talking about making objects of user defined classes in jax-rpc service.I think there is some problem in classpath.
    Please guide me in doing that.
    Thanks,
    Farrukh

    Farrukh,
    I don't know if your error is about a missing class from your custom package, ... what track did you followed to say that?
    To use your package in the implementation of you web service, you should only follow the rules of making a web application: put your package jar in your \lib directory inside WEB-INF/ or your package classes unjared in classes (also in WEB-INF/).
    As I already said, I have doubts that your error should be originated from a missing class from your package, but:
    -try to see the logs (errors?) when you deploy your web service that could give a hint about the problem.
    -try to see if you can access your endpoint through your browser to see if there is a online status
    -display your config/WSDL file, and the steps you did to build your web service.
    regards,
    Pedro Salazar.

  • How to pass a "user defined" object to a thread?

    Hi...
    I have created an object say 'obj1' . I want to pass to a thread say 'T1' .
    The thread T1 implements the runnable class.
    I need to pass the "obj1" object to the T1 for it to be processed in the "run" method of T1.
    As far as I have seen there is no thread constructor in Java that accepts an object created by the user.
    My question is there any way to pass an object to a thread? and if so how can it be done?

    You can just add your own method to the class. Then call that method to pass the object to the thread before you call start on the thread.
    class MyThread implements Runnable
       public void run()
          userObj.whatever();
       public void addObj(Object obj)
          userObj = obj;
       Object userObj = null;
    // your code
    MyThread thread = new MyThread();
    thread.addObj(myObj);
    thread.start();As long as you don't call start before your pass the object to your thread, then you won't have a problem. Hope this helps.

  • User defined column heading

    Hello Every1,
    The following is a peice of code produces a report. At the moment the heading of the column is GBCCCL15/16_CSAHEPA because it has been hard coded that way. However what i would like instead, is the heading of the column to be what ever the user selects. What i mean by this is, what ever the user chooses to search in the text fields will then be displayed as the column heading when the report is exicuted.
    select schema_name,
    max(GBCCCL1516_CSAHEPA) as "GBCCCL15/16_CSAHEPA"
    from     
         select     schema_name, created_time,
         case when
              server_name||'_'||db_name='GBCCCL15/16_CSAHEPA'
              then DB_PATCH_NUMBER||'v'||VERSION_NUMBER else null end GBCCCL1516_CSAHEPA
    from      version_control
    group by schema_name
    order by SCHEMA_NAME
    Does anyone know how to get this done?
    Thanks in advance.

    Hi,
    Headings can be created dynamically. Change the headings type to PL/SQL. You then see a "Function returning colon delimited headings" setting - enter in something like:
    DECLARE
    v_headings VARCHAR2(2000);
    BEGIN
      v_headings := '';
      SELECT USER_HEADING INTO v_HEADINGS FROM TABLEX;
      RETURN v_headings;
    END;The string returned must be a colon-delimited string with one value for each column. eg:
    COL1:COL2:COL3Andy

  • User defined Object transfer in java web service

    Hi,
    I want to return an object(serialized) from the server to client during a method call.
    I tried to return the object as like String object given below.
    @WebMethod
    public ValueVO getValues() {
    ValueVO vo = new ValueVO("arg1", "arg2");
    return vo;
    But in the client side I am getting an the following errors. The same I am getting for the generic return type Object also.
    Compilation Warnings
    [WARNING] src-resolve: Cannot resolve the name 'ns6:CertPath' to a(n) 'type definition' component.
    line 251 of file:/D:/DVH/source/DVHClient/xml-resources/web-service-references/ResourceEngineAdapter/wsdl/localhost_8080/DVHServer/ResourceEngineAdapter.wsdl#types?schema6
    Server Error(JBoss)
    16:46:27,430 ERROR [SOAPFaultExceptionHelper] SOAP request exception
    javax.xml.rpc.JAXRPCException: Cannot create or send response message
    at org.jboss.ws.server.ServiceEndpoint.postProcessResponse(ServiceEndpoint.java:311)
    at org.jboss.ws.server.ServiceEndpoint.handleRequest(ServiceEndpoint.java:236)
    at org.jboss.ws.server.ServiceEndpointServlet.doPost(ServiceEndpointServlet.java:120)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
    at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
    at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:175)
    at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:74)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
    at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
    at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
    at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112)
    at java.lang.Thread.run(Thread.java:595)
    Caused by: org.jboss.xb.binding.JBossXBRuntimeException: Neither getter nor field where found for defaultAssertionStatus in class java.lang.ClassLoader
    at org.jboss.xb.binding.MappingObjectModelProvider$FieldToElementMapping.<init>(MappingObjectModelProvider.java:368)
    at org.jboss.xb.binding.MappingObjectModelProvider.mapFieldToElement(MappingObjectModelProvider.java:71)
    at org.jboss.ws.jaxb.JAXBMarshallerImpl.marshal(JAXBMarshallerImpl.java:149)
    at org.jboss.ws.jaxrpc.encoding.JAXBSerializer.serialize(JAXBSerializer.java:100)
    at org.jboss.ws.soap.SOAPContentElement.getXMLFragment(SOAPContentElement.java:172)
    at org.jboss.ws.soap.SOAPContentElement.expandToDOM(SOAPContentElement.java:844)
    at org.jboss.ws.soap.SOAPContentElement.getChildNodes(SOAPContentElement.java:761)
    at org.jboss.util.xml.DOMWriter.printInternal(DOMWriter.java:211)
    at org.jboss.util.xml.DOMWriter.printInternal(DOMWriter.java:270)
    at org.jboss.util.xml.DOMWriter.printInternal(DOMWriter.java:270)
    at org.jboss.util.xml.DOMWriter.print(DOMWriter.java:186)
    at org.jboss.util.xml.DOMWriter.printNode(DOMWriter.java:135)
    at org.jboss.ws.server.ServiceEndpoint.postProcessResponse(ServiceEndpoint.java:305)
    Is there any different way to transfer the objects. Please help me on this issue.
    Thanks.

    Hi ,
    I am getting the same error. I am running my application on jboss-4.0.4.GA. Please let me know the version of jboss that you to got it working.
    Thanks
    Viv

  • Unable to pass XMlL version tag to the backend from Proxy Service

    Hi All,
    I have problem in sending xml version tag "<?xml version="1.0" encoding="UTF-8"?>" to a backend as my backend is expecting the input along with the xml version tag.
    I have done with following thing but that doesnot work for me:
    1)What is happening when i am trying to insert the xml tag inside a body.The body is not able to recognise the same and it construct the request without the versioning tag.
    2)In assign node i have tried putting the version tag but here tag is reflected inside the body with "&lt;?xml version="1.0" encoding="UTF-8"?>" it means internally it is making it serialize the and make the starting angle bracket as an HTML tag.In this scenario my backend throws an error "unable to parse the xml".
    3)I have tried with CDATA also but here also the same thing is happening as in case 2.
    Please help me if nay one knows the solution for this.
    Regards,
    Rajeev Goel

    yes. u can pass the parameter by below code
    var myProxy =SOAP.connect('http://localhost:100/Service1.asmx?WSDL');
    var value1="hai";
    var result=myProxy.Helloworld(serverValue:value1);
    app.alert(result);
    The web service Helloworld Method should be like
    string Helloworld(string serverValue)
    return serverValue+" EveryBody";

  • How to Pass User-defined Parameters from Forms to Reports

    Hi!I am trying to launch an existing report from a form then spool it into a PDF file. I have been successful in passing the report properties using SET_REPORT_OBJECT_PROPERTY built-in and I am also able to launch the report using RUN_REPORT_OBJECT built-in. My problem is, I cannot seem to pass the user defined parameters from my form to the report eventhough I am using the same variable names.
    this is a part of my code:
    repid := Find_Report_Object('ACPPRACS');
    Set_Report_Object_Property(repid, REPORT_EXECUTION_MODE,BATCH);
    Set_Report_Object_Property(repid, REPORT_DESTYPE,FILE);
    Set_Report_Object_Property(repid, REPORT_DESNAME,'C:\TMP\ACS01.PDF');
    Set_Report_Object_Property(repid, REPORT_DESFORMAT,'PDF');
    Set_Report_Object_Property(repid, REPORT_OTHER,'PF_NBO_CD='&#0124; &#0124;'"'&#0124; &#0124;:acs.nbo&#0124; &#0124;'"');
    v_rep := RUN_REPORT_OBJECT(repid);
    Hope you can help me soon. Thanks!

    first of all u will create a paramlist
    then add_paramter to this list
    and then pass this list to the report
    by using run_product.
    i think this is all.
    <BLOCKQUOTE><font size="1" face="Verdana, Arial">quote:</font><HR>Originally posted by Jenny ([email protected]):
    Hi!I am trying to launch an existing report from a form then spool it into a PDF file. I have been successful in passing the report properties using SET_REPORT_OBJECT_PROPERTY built-in and I am also able to launch the report using RUN_REPORT_OBJECT built-in. My problem is, I cannot seem to pass the user defined parameters from my form to the report eventhough I am using the same variable names.
    this is a part of my code:
    repid := Find_Report_Object('ACPPRACS');
    Set_Report_Object_Property(repid, REPORT_EXECUTION_MODE,BATCH);
    Set_Report_Object_Property(repid, REPORT_DESTYPE,FILE);
    Set_Report_Object_Property(repid, REPORT_DESNAME,'C:\TMP\ACS01.PDF');
    Set_Report_Object_Property(repid, REPORT_DESFORMAT,'PDF');
    Set_Report_Object_Property(repid, REPORT_OTHER,'PF_NBO_CD='| |'"'| |:acs.nbo| |'"');
    v_rep := RUN_REPORT_OBJECT(repid);
    Hope you can help me soon. Thanks!<HR></BLOCKQUOTE>
    null

  • Propagating user defined exceptions

    A question on marshalling user defined exception in RMI/IIOP. Consider the following simple Java interface and user defined exception:
    public interface OrderProcess extends Remote {
    String placeOrder(PO order) throws OrderException, RemoteException;
    public final class OrderException extends java.lang.Exception implements java.io.Serializable {
    public OrderException() { }
    public String msg;
    public OrderException(String _msg) {
    msg = _msg;
    If the client uses RMI/IIOP to access a CORBA server( client uses the rmi stubs generated by rmic -iiop, the server uses Dynamic Skeleton Invocation by implementing org.omg.CORBA.DynamicImplementation), how does the server send back the user defined exception OrderException so that it can be unmarshalled properly by the client stub? Here is a section of the rmi stub generated by JDK1.3.0, note it looks for an exception OrderEx and OrderException:
    public String placeOrder(PO arg0) throws OrderException, RemoteException {
    if (!Util.isLocal(this)) {
    try {
    org.omg.CORBA_2_3.portable.InputStream in = null;
    try {
    org.omg.CORBA_2_3.portable.OutputStream out =
    (org.omg.CORBA_2_3.portable.OutputStream)
    _request("placeOrder", true);
    out.write_value(arg0,PO.class);
    in = (org.omg.CORBA_2_3.portable.InputStream)_invoke(out);
    return (String) in.read_value(String.class);
    } catch (ApplicationException ex) {
    in = (org.omg.CORBA_2_3.portable.InputStream) ex.getInputStream();
    String id = in.read_string();
    if (id.equals("IDL:RFQSample/initial/rfqTypes/OrderEx:1.0")) {
    throw (OrderException) in.read_value(OrderException.class);
    throw new UnexpectedException(id);
    } catch (RemarshalException ex) {
    return placeOrder(arg0);
    } finally {
    _releaseReply(in);
    } catch (SystemException ex) {
    throw Util.mapSystemException(ex);
    } else {
    ServantObject so = servantpreinvoke("placeOrder",OrderProcess.class);
    if (so == null) {
    return placeOrder(arg0);
    try {
    PO arg0Copy = (PO) Util.copyObject(arg0,_orb());
    return ((OrderProcess)so.servant).placeOrder(arg0Copy);
    } catch (Throwable ex) {
    Throwable exCopy = (Throwable)Util.copyObject(ex,_orb());
    if (exCopy instanceof OrderException) {
    throw (OrderException)exCopy;
    throw Util.wrapException(exCopy);
    } finally {
    servantpostinvoke(so);

    Not sure exactly if that's what you are asking but the unmarshalling of your OrderException happens in this catch block:
    catch (ApplicationException ex)
                        in = (org.omg.CORBA_2_3.portable.InputStream) ex.getInputStream ();
                        String id = in.read_string ();
                        if (id.equals ("IDL:RFQSample/initial/rfqTypes/OrderEx:1.0"))
                            throw (OrderException) in.read_value (OrderException.class);
                        throw new UnexpectedException (id);
                    }the ApplicationException class is the vehicle that transports your exception instance across the wire. You can dig further into the implementation to see how it is done.
    Vlad.

  • OSB - Business Case for Adapters Vs Transport

    Hi
    1. Can you please explain me a business case on when one should use Db/JMS/FTP/File Adapter in OSB and when should one go in for equivalent transports for configuring Business/Proxy services? Would be great if you could point me to some documentation on which approach should be chosen over the other/any benefits that a particular approach has etc..
    2. Also is there some Oracle Documentation available on comparision between OSB and BPEL? When should a particular product be chosen? I tried searching for an example with a business scenario which provides details on when to use OSB and when to use BPEL but havent been able to get much info.
    Thanks!

    Can you please explain me a business case on when one should use Db/JMS/FTP/File Adapter in OSB and when should one go in for equivalent transports for configuring Business/Proxy services? Would be great if you could point me to some documentation on which approach should be chosen over the other/any benefits that a particular approach has etc.. For DB, you have to use DB adapter in OSB beacuse there is no seprate transport defined for DB. For FILE, you have both options - FILE transport and FILE adapter (in OSB 11g). FILE transport should be the preferred option (never seen documented anywhere) as it has been designed as part of the product and hence should be faster (although never comapred). For JMS and FTP, you have to use respective transports defined in OSB because OSB does not support JCA adapters for FTP/JMS (you may refer - 25.2.1 Adapter Support
    at http://download.oracle.com/docs/cd/E14571_01/doc.1111/e15866/jca.htm#BABBICIA)
    2. Also is there some Oracle Documentation available on comparision between OSB and BPEL? When should a particular product be chosen? I tried searching for an example with a business scenario which provides details on when to use OSB and when to use BPEL but havent been able to get much info.OSB is a dedicated routing product and must be used for scenarios where only routing is required along with light transformations. Being a stateless product OSB can bear heavy load as well as gives better performance. BPEL can do what OSB does (to a certain extent) but being a statefull product it is much slower than OSB and should be used only for scenarios where process orchestration/human workflow intervention is required.
    OSB being a service bus, can mediate among almost each and every kind of protocols but BPEL would need adapters for such mediation.
    Regards,
    Anuj

Maybe you are looking for