OSB Query

Hi ,
OSB is acting different while i am testing my message flow in IE, FF,Chrome and SOAP-UI .
i have simply assigned this expression using assign action
fn:data($inbound/ctx:security/ctx:transportClient/ctx:username) to a dummy variable.
while testing the message flow from :
IE, Chrome and in SOAP UI, dummy variable is getting initialized as with value *<anonymous>*
FireFox, its getting initialized as with value weblogic (i.e the username to login in sbconsole).
Please correct me !!
Cheers,
Abhinav Gupta

In your OSB Test console, there are four sections. Test configuration, Request Document, Transport and Attachment.
I think that somehow in "Transport" section, you have entered your username and password that of OSB user. They must have been stored in FF as cookies. So by default, any request that you test using test console, the credentials are being passed with the request.
Remove the username and password in "Transport" section and test again.
Regards,
Swapnil

Similar Messages

  • How to dynamically update columns in a where clause to a SQL query in OSB?

    Hi Gurus,
    I have a requirement where in we need to dynamically update a where clause to a SQL query in OSB(11.1.1.6.0).
    For example:
    If the JCA sql string is "select * from emp where emp_id = 100 and emp_status ='Permanent'" now i want to change this where clause and the new query has to be like "select * from emp where emp_name like 'S%' and emp_dept like 'IT' ". basically we need to change the where clause dynamically.
    We can also use "fn-bea:execute-sql()" in a xquery but I don't want to use this function as creates a new connection.
    I have done some home work and found out --> as per the DOC "http://docs.oracle.com/cd/E23943_01/dev.1111/e15866/jca.htm#OSBDV943" section: "25.5.2 JCA Transport Configuration for Proxy and Business Services", when a business service is created by using JCA, we can see Interaction Spec Properties under JCA Transport Tab. This will have a property "SqlString' and we can over ride it. But I am unable to figure out how to over ride the value. I have tried by using Transport Headers activity but no luck. Please guide me how to achieve this?
    Thanks in advance
    Surya

    I solved my problem.
    In my header renderer, I simply added a line to set the text to the object value "label.setText( (String) value );" (where label is an instance of a JLabel.
    Thank you to who took some time to think about it.
    Marc

  • How to disable query-string evaluation in OSB proxy service?

    OSB 10.3 proxy service evaluates the query String ?WSDL (are there more such parameters?). Usually the assigned WSDL will be returned this way.
    I want to use OSB as simple HTTP-proxy. There is no WSDL assigned. The proxy service should simply pass all parameters to the request pipeline. This works fine for parameters in general but not for WSDL. This produces the exception below.
    Does anyone have an idea how to disable this query string evaluation within OSB proxy service?
    Thanks
    Daniel
    <25.11.2009 15:43 Uhr MEZ> <Error> <WliSbTransports> <BEA-381304> <Exception in HttpTransportServlet.service: java.io.IOException: This service is not associated to a wsdl
    java.io.IOException: This service is not associated to a wsdl
    at com.bea.wli.sb.transports.http.ResourceRequestProcessor.securedInvoke(ResourceRequestProcessor.java:108)
    at com.bea.wli.sb.transports.http.ResourceRequestProcessor.process(ResourceRequestProcessor.java:61)
    at com.bea.wli.sb.transports.http.HttpTransportServlet$RequestHelper.handleMetadataRequest(HttpTransportServlet.java:314)
    at com.bea.wli.sb.transports.http.HttpTransportServlet$RequestHelper.service(HttpTransportServlet.java:215)
    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)

    Daniel,
    http://hostServer/contextpath?WSDL is common way of retrieving WSDL for service whcih supports one. The case you are suggesting is if the service does not have any wsdl associated, then it is good practice that caller be notified appropriately which is being done by OSB. OSB is indicating that the service for which we have used ?wsdl has no wsdl associated.
    I guess there is no way we can disable this feature for un-typed OSB services (services which doesn't have wsdl associated). Any reason why would we don't want exception when '?wsdl' is used?
    Manoj

  • General Query in OSB - 10gR3

    Hi,
    I have a general query in OSB. Whenever I try to add any expression through any message processing controls, there are three other tabs, comments, namespaces and variables. Can someone explain what is the use of namespaces and variables. If possible with the help of an example.
    Thanks,
    Bals

    Hi Bals,
    Comments allow the developer to put some lines regarding the functionality of that action/stage. This is same as putting comment in any programming language.
    XML Namespaces provide a method to avoid element name conflicts in a XML. To know more please refer -
    http://www.w3schools.com/xml/xml_namespaces.asp
    Variables section refers to the message context variables like $header, $body, $inbound, $outbound etc. You may refer below link to know more -
    http://download.oracle.com/docs/cd/E13159_01/osb/docs10gr3/userguide/context.html
    Regards,
    Anuj

  • Query regarding handling and monitoring of OSB Errors in a specific manner

    Hi,
    I'm using
    - OSB 10gR3 (10.3.1)
    Context
    To give some context, the setup I currently have a proprietory frontend client that is making XML/HTTP requests to OSB
    which in turn is getting info from downstream systems.
    I have no control over the behaviour/logic of the frontend client .. apart from knowing that it has a specific
    request/response format.
    So now to the issue..
    The issue I'm facing is regarding handling of errors. Based on my knowledge of OSB, the error handling of the transaction has been
    built along these lines
    (Within the stage) If an error scenario's occurred, error is being thrown
    (Within the error handler stage) Logging the error (using the 'Log' function .. with severity 'Error')
    (Within the error handler stage) The response payload is being built .. so that the error can be reported to the frontend client
    (Within the error handler stage) I'm doing a 'Reply with Success'
    Now this does give me the expected behavior from the frontend client's perspective (... i.e. it receives the payload and displays whatever error that's occurred)
    However from OSB's perspective, because I have done a 'Reply with success', the OSB Service Health Page ... (screenshot below) does not
    increment the 'Errors' count for the respective proxy service ....
    [OSB Service Health Page|http://download.oracle.com/docs/cd/E13159_01/osb/docs10gr3/operations/monitoring.html#wp1107685] (Looking at Figure 3-8)
    The only way I could achieve this was to set the error handler stage to 'Reply with Failure' (which would return HTTP 500) ...
    The issue however is that, the proprietory frontend simply sees the incoming HTTP 500 code and doesn't read the return XML payload (containing the error details ..)
    which beats the whole idea of being able to maintain some sort of traceability for the failed transactions.
    So what I'm basically trying to find is .. that when an error occurs
    - Some 'call' to make the during the error handler stage so that it registers as an error in the OSB Service Health Page.. and I can clearly
    see the error count, etc for each of the proxy services
    - After that being able to still use 'Reply with Success' ... so that the payload is being returned with HTTP 500 code...
    so the frontend can read the payload ...
    ............. in essence, the idea being to register errors so that they can be monitored via the Service Health Dashboard ..but at the same time
    being able to return the 'error details' payload successfully
    With my limited (but growing) knowledge of OSB .. I've tried quite a few ways to achieve this with no success...
    Would very much appreciate any help here ...
    Lastly, if there is some way of achieving what I'm trying to get to above through different means, I'm open
    to trying out alternate stuff.
    Regards,
    Himanshu

    Hi Atheek,
    Many thanks for the reply. Does appear to be a pretty neat way of doing it ..
    One more clarification I'd like on this however ....
    Given that I have a set up like this below
    [External frontend client] <------> (1 Parent Service) <------> (2 Child Service)
    (1 Parent Service) .... has error handler .. and all it does is 'Reply with success'
    (2 Child Service) .... has error handler for particular stage
    so...
    2 Child Service - is doing the actual work (has error handler where custom error msg is being populated in $body)
    1 Parent Service - is the one that is getting called by the external client (has error handler .. and all it does is 'Reply with success')
    What I currently have is ..once the error occurs, I'm populating $body ... with the custom error message within the error handler
    Previously I had 'Reply with Success' in the 2 Child Service's error handler and the custom error message would get returned to the external client.
    Now, with the error handler only creating the custom error msg.... and 1 Parent service doing the 'Reply with Success' .. it doesn't appear
    to return the $body .. with the custom msg that I'd populated .. in 2 Child Service's error handler.
    Are the $body contents populated in 2 Child Service's error handler lost ...once the error propagates up to 1 Parent service's error handler ?
    If yes... is there way of getting around it ? I could see for instance that the $fault message context has a 'user populated' Details variable
    but the documentation covering this is sparse.
    Regards,

  • Query regarding the tutorial for Oracle Service Bus (OSB 10gR3)

    Hi,
    I am working on a tutorial of Oracle Service Bus (OSB 10gR3).
    I have created the proxy service and the Business Service, using Oracle Service Bus console.
    The details are as follows:
    Proxy service: LoanGateway
    Business service1: A value of 4.9 or less causes the message to be routed to the ManagerLoanReview business service.
    Business service2: A value of 5.0 or greater causes the message to be routed to the NormalLoan business service.
    When i send the request message, so that it gets routed from proxy service to one of the business service than it gives following error.
    Request Document
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
    <soap:Header xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
    </soap:Header>
    <soapenv:Body>
    <exam:processLoanApp xmlns:exam="http://example.org">
    <loanRequest xsi:type="java:LoanStruct" xmlns:java="java:normal.client" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <!--Optional:-->
    <java:Name>Smith</java:Name>
    <!--Optional:-->
    <java:SSN>1234567</java:SSN>
    <!--Optional:-->
    <java:Rate>4.1</java:Rate>
    <!--Optional:-->
    <java:Amount>9000000</java:Amount>
    <!--Optional:-->
    <java:NumOfYear>10</java:NumOfYear>
    <!--Optional:-->
    <java:Notes>Manager Loan Application Review Service</java:Notes>
    </loanRequest>
    </exam:processLoanApp>
    </soapenv:Body>
    </soapenv:Envelope>
    Response Document
    The invocation resulted in an error: .
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
    <soapenv:Body>
    <soapenv:Fault>
    <faultcode>soapenv:Server</faultcode>
    <faultstring>
    BEA-380002: Tried all: '1' addresses, but could not connect over HTTP to server: 'localhost', port: '7021'
    </faultstring>
    <detail>
    <con:fault xmlns:con="http://www.bea.com/wli/sb/context">
    <con:errorCode>BEA-380002</con:errorCode>
    <con:reason>
    Tried all: '1' addresses, but could not connect over HTTP to server: 'localhost', port: '7021'
    </con:reason>
    <con:location>
    <con:node>RouteNode1</con:node>
    <con:path>request-pipeline</con:path>
    </con:location>
    </con:fault>
    </detail>
    </soapenv:Fault>
    </soapenv:Body>
    </soapenv:Envelope>
    Response Metadata
    <con:metadata xmlns:con="http://www.bea.com/wli/sb/test/config">
    <tran:headers xsi:type="http:HttpResponseHeaders" xmlns:http="http://www.bea.com/wli/sb/transports/http" xmlns:tran="http://www.bea.com/wli/sb/transports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <http:Content-Type>text/xml; charset=utf-8</http:Content-Type>
    </tran:headers>
    <tran:response-code xmlns:tran="http://www.bea.com/wli/sb/transports">1</tran:response-code>
    <tran:encoding xmlns:tran="http://www.bea.com/wli/sb/transports">utf-8</tran:encoding>
    </con:metadata>

    I have the same problem and I'm not able to telnet localhost on port 7021. How can I change this port number I think that port must be 7001, it is correct?Examples server domain is pre-configured for port 7021. The samples domain will have the examples properly deployed in this domain out of box. You dont need to change any thing in {BEA_HOME}\osb_10.3\samples\domains\servicebus\config.
    I doubt this has to do something with firewall . Check the last statement in the log after starting the domain.
    <May 19, 2009 8:50:09 AM IST> <Notice> <Server> <BEA-002613> <Channel "Default" is now listening on 10.177.242.25:7001 for protocols iiop, t3, ldap, snmp, http.>
    <May 19, 2009 8:50:09 AM IST> <Notice> <Server> <BEA-002613> <Channel "Default[1]" is now listening on 127.0.0.1:7001 for protocols iiop, t3, ldap, snmp, http.>
    <May 19, 2009 8:50:09 AM IST> <Notice> <WebLogicServer> <BEA-000331> <Started WebLogic Admin Server "AdminServer" for domain "base_domain" running in Development Mode>
    <May 19, 2009 8:50:09 AM IST> <Warning> <Server> <BEA-002611> <Hostname "mneelapu", maps to multiple IP addresses: 10.177.242.25, 127.0.0.1>
    <May 19, 2009 8:50:09 AM IST> <Warning> <Server> <BEA-002611> <Hostname "XYZ-v411-10-177-242-25.oracle.com", maps to multiple IP addresses: 10.177.242.25, 127.0.0.1>
    <May 19, 2009 8:50:09 AM IST> <Notice> <WebLogicServer> <BEA-000365> <Server state changed to RUNNING>
    <May 19, 2009 8:50:09 AM IST> <Notice> <WebLogicServer> <BEA-000360> <Server started in RUNNING mode>
    What are you seeing in your log file?
    Edited by: mneelapu on May 19, 2009 9:58 AM

  • How to send query string to OSB Business Service?

    Hi
    I need to call a Servlet which is accepting http get request.
    My system design is
    I have a web service interface that I need to expose to Front end application. I am using Proxy service for this.
    Then I have a servlet at end system and using Business service to send request to servlet.
    I need to pass username, password, jndi context and payload using url encoding.
    What all steps do I need to follow for this? How to create query string , which variable I need to play with inbound or outbound?
    I have gone through all the answers on this forum but could not understand much.
    Thanks
    Vibhor

    Hii
    I am still unable to send http get request to end service.
    In flow I have setted $outbound/transport/request-http/query-string too.
    But I have to send request with url encoding.
    How to encode query string and how can I check whether my request is going correctly or not, is there any variable in which complete url would be stored.
    Thanks
    Vibhor
    Edited by: Vibhor Rastogi on Sep 15, 2010 9:49 AM

  • Osb jms query

    Hi,
    I have generic jms client code as part of my web application sits on weblogic 11g, which publishes the text message file to different jms providers based on configuration (set the file path to be published, connection factory and destination info etc). Currently it works fine with weblogic JMS and websphere mq. Now I need to test with OSB.
    So how can I use osb here? Do I need to use osb proxy service to publish the message to either weblogic JMS or MQ?
    Can I configure osb in some way so that my generic jms provider will publish the message using osb?
    Does OSB has default JMS Provider or we need to always plug in the external jms provider like mq?
    As I am new to osb it will be very helpful your inputs on this. Appreciate your inputs.
    Thanks,
    Sri.

    Hi-
    I have generic jms client code as part of my web application sits on weblogic 11g, which publishes the text message file to different jms providers  I assume you clinet posts the msg to weblogic queue
    So how can I use osb here? Do I need to use osb proxy service to publish the message to either weblogic JMS or MQ?You have configure a Business Service with JMS protocol providing the end point URL.
    refer this doc for the same http://download.oracle.com/docs/cd/E13159_01/osb/docs10gr3/interopjms/transport.html
    Does OSB has default JMS Provider or we need to always plug in the external jms provider like mq?OSB supports JMS transactions
    As I am new to osb it will be very helpful your inputs on this. Appreciate your inputs. These docs could help you to explain about OSB
    http://www.oracle.com/technology/pub/articles/jumpstart_for_osb_development_page_3.html
    http://download.oracle.com/docs/cd/E17904_01/doc.1111/e15020/toc.htm

  • ALSB (OSB) UDDI Query

    Hi,
    Can anyone please help me with an example of how to execute a service hosted in UDDI through a query ?
    A sample or any pointers will be helpful.
    Thanks,
    Arpita.

    Chandan,
    When ya say the UDDI lookup, are ya refering to the dynamic invocation of the business services from the UDDI - i.e, first discover the service using business key and then invoke the service?
    Rgds,
    Is

  • Help with simple XPath query in OSB

    Hi!
    I'm trying to extract part of XML message with Oracle Service Bus using XPath but I can't find the way to get it done
    For testing purposes I initialize a "test" variable with an assignation action with following content:
    <Countries><Country><COUNTRY>ES</COUNTRY><EU_COUNTRY>S</EU_COUNTRY><NOMBRE>Spain</NOMBRE><ID>1</ID><Country></Countries>
    Then I use following code to access COUNTRY element but I get blank result:
    $test/Countries/Country/COUNTRY/text()
    I'm rather new to XPath but I think this expression should work.
    Could anyone give me any advice?
    Thank you.
    Edited by: user542345 on 15-jun-2011 9:06

    Great! But why must I avoid root XML element in expression?

  • Proxy business services in osb

    In osb if i want to get data from a client then what is the procedure
    I am using a business service whose endpointuri is a proxy service (protocol http)
    And this business service is inturn called by my local proxy service
    Is this procedure correct ?
    if not then what is the correct procedure how many proxy and business services do i need to get data from my client
    Thanks,
    Rahul

    How many Proxy Services and Business Services to use depends on the use case.
    For example, if your client will initiate a transaction when it has some data to send to another system then you will have to configure following flow:
    First system (wants to send some data)--> Proxy Service(to receive data from Client) --> Business Service (to call the second system) --> second system web service API
    Another scenario in which you need to get some data from the second system when requested by the first system (query scenario) the above flow would still remain the same.
    Addition of another Proxy service depends on specific use case and scope of re-usability etc. For example if you want to fetch data from a system and that query can be reused in various processes or can also be called from various client applications then you can create a wrapper Proxy above the Business service and call this Proxy Service instead of calling the business service from your Proxy.
    Domain structure also is a deciding factor, for example if you want to call a Proxy in one domain from another domain you can use a Business Service in the requesting domain.

  • How to take control back from service error handler in osb

    I am using osb to send data to multiple services at the same time.since x query is a procedural language if any single operation fails the flow goes to service error handler which calls a BPEL webservice and logs the error in a database but the control doesnt comes back to my code I have tried everything including RESUME,REPLY operations but all in vain similarly i cannot use service callout call to my business service because its not allowing to select my BPEL wsdl operation

    If your statement "the control doesnt comes back to my code" means you expect that your xquery will continue in processing than your expectations are just too high. :-)
    Resume action is supposed to resume the next action in the message flow. It means the action that follows the action which caused an error.

  • Error while running export.py in OSB 11g

    Hi all,
    I am trying to write wlst in osb 11g. I am getting the following error
    export:
    [echo] exportscript: export.py
    [java] Initializing WebLogic Scripting Tool (WLST) ...
    [java] Welcome to WebLogic Server Administration Scripting Shell
    [java] Type help() for help on available commands
    *[java] Problem invoking WLST - Traceback (innermost last):*
    *[java] File "C:\Documents and Settings\Desktop\WLST\test\export.py", line 7, in ?*
    *[java] ImportError: cannot import name EnvValueQuery*
    [java] Java Result: 1
    BUILD SUCCESSFUL
    Total time: 6 seconds
    Below is my build.xml should I make any more changes to run it in 11g I have changed the com.bea.common.configfwk_1.3.0.0.jar file name and directory names.
    Should I set any class path before running this build.xml ?
    <project default="export">
         <!-- ALSB domain creation project -->
         <property environment="env" />
         <!-- set global properties for this build -->
         <!-- The bea.home property hold that name of the directory where you installed ALSB 3.0.
              you need to change this value so that it matches your installation directory.
         -->
         <property name="bea.home" value="C:\Oracle\Middleware" />
         <!-- The workspace.dir is the directory of the workspace that you created to contain the sample
              projects from this book. By default, the namespace is "alsb30_book"
         -->
         <property name="workspace.dir" value="C:\Documents and Settings\workspace\Test OSB Project" />
         <property name="weblogic.home" value="${bea.home}\wlserver_10.3" />
         <property name="domain.export.script" value="export.py" />
         <property name="domain.import.script" value="import.py" />
         <property name="export.config.file" value="export.properties" />
         <property name="import.config.file" value="import.properties" />
         <property name="build" value="build" />
         <property name="dist" value="dist" />
         <path id="wlst.class.path">
              <fileset dir="${bea.home}\Oracle_OSB1\lib">
                   <include name="sb-kernel-api.jar" />
              </fileset>
              <fileset dir="${bea.home}\modules">
                   <include name="com.bea.common.configfwk_1.3.0.0.jar" />
              </fileset>
              <fileset dir="${weblogic.home}\server\lib">
                   <include name="weblogic.jar" />
                   <include name="webserviceclient.jar" />
              </fileset>
         </path>
         <taskdef name="wlst" classname="weblogic.ant.taskdefs.management.WLSTTask" classpathref="wlst.class.path" />
         <target name="export">
              <echo message="exportscript: ${domain.export.script}" />
              <java classname="weblogic.WLST" fork="true" classpathref="wlst.class.path">
                   <arg line="${domain.export.script} ${export.config.file}" />
              </java>
         </target>
         <target name="clean">
              <delete dir="${dist}" />
              <delete dir="${build}" />
              <mkdir dir="${dist}" />
              <mkdir dir="${build}" />
         </target>
    </project>

    Perhaps you are using old WLST code (used for OSB 10g), with OSB 11g.
    The ALSBConfigurationMBean (com.bea.wli.sb.management.configuration.ALSBConfigurationMBean) Interface in the com.bea.wli.sb.management.configuration package in the Oracle Fusion Middleware Java API Reference for Oracle Service Bus includes example code illustrating how to import and export Oracle Service Bus 11g configurations, how to change environment values, how to query resources, and so on. Please find it here -
    http://download.oracle.com/docs/cd/E14571_01/apirefs.1111/e15033/toc.htm
    Regards,
    Anuj

  • Issue in Dynamic routing (OSB)

    Hi,
    I implemented dynamic routing in OSB,using xQuery:-
    +<tradingPartnerList xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="C:\bea910\user_projects\eclipse\TradingPartners.xsd">+
    +     <tp>+
    +          <Name>Platinum</Name>+
    +          <URL>DynamicDispatch/p1</URL>+
    +     </tp>+
    +<tp>+
    +          <Name>Gold</Name>+
    +          <URL>DynamicDispatch/p2</URL>+
    +     </tp>+
    +</tradingPartnerList>+
    I am routing it on to another proxy using following xml:-
    <ctx:route>
    <ctx:service isProxy='true'>{$endpoint}</ctx:service>
    <ctx:operation>null</ctx:operation>
    </ctx:route>
    Where the Endpoint is from the above xQuery..
    All work fine but i have a one Issue:-
    In <ctx:service isProxy='true'>{$endpoint}</ctx:service> we specify the folder structure of the proxyservice. but what if i move my proxy in future,if i move some of my proxy to other folder the xquery need to be changed which i feel is vv poor design.
    Is there any way where is can specify URL or URI of the proxy service????

    Is there any way where is can specify URL or URI of the proxy service????First of all, you would not like to move your resources here and there frequently in production. Secondly, if you move the resources, definitely you have to change X-Query/Message flow. There is no alternative.
    If you want this feature to be enhanced, please raise a ER with Oracle Support and if they find it valid, will provide a patch for the same.
    Regards,
    Anuj

  • Extracting MIME attachment from email using OSB proxy service - email transport

    Hi,
    I'm reading email messages(multipart/mixed) with attachments(pdf, zip, xml and csv) from MS Exchange Server 2010 using OSB proxy service email transport.I need to save the attachments to a local folder and process one of the attachments, an XML file. Below is the proxy service config.
    Proxy Service Configuration (Test1/Proxy Services/GetEmail)
    Actions: 
    General Configuration
    Service Type   Messaging Service
    Message Type Configuration
    Request Message Type 
    Text     
    Response Message Type 
    None     
    Transport Configuration
    Protocol   email
    Endpoint URI   mailfrom:mailserver.net:143
    Get All Headers   No
    Headers   
    EMAIL Transport Configuration
    Email Protocol   imap
    Service Account   Test1/Proxy Services/email_acc
    Managed Server   WLS_OSB1
    Polling Interval   30
    Read Limit   2
    Pass By Reference   false
    Pass Attachments By Reference   false
    Post Read Action   move
    IMAP Move Folder   processed
    Attachments   archive
    Download Directory   \\soasup-stor01\Vacancy\test\download
    Archive Directory   \\soasup-stor01\Vacancy\test\archive
    Error Directory   \\soasup-stor01\Vacancy\test\error
    Request Encoding   iso-8859-1
    Message Handling Configuration
    Transaction Required   Disabled
    Same Transaction For Response   Disabled
    Content Streaming   Disabled
    The polling is working fine. I've encoded the attachment variable to Base64 using a java callout.$attachments/ctx:attachment/ctx:body/ctx:binary-content has been passed as the byte[] input to the java method and the response is captured in $encodedAttachment. I've created a SaveFile BS(file type) with Request Message Type = Binary and Response Message Type = None. I've tried replacing the node ./ctx:binary-content in body variable with encodedAttachment in the request action of the Publish action to call the BS. One file is getting created with contents of the entire email, MIME headers and boundary parts along with the base64 encoded attachments.
    <Contents from the created file>
    MIME-Version: 1.0
    Content-Type: multipart/related; boundary=MIME_Boundary;
      type="binary/octet-stream"
    --MIME_Boundary
    Content-Type: binary/octet-stream
    Content-Transfer-Encoding: 8bit
    Thanks &amp; Regards,
    Samyajit Talukdar
    : [email protected]
    -----Original Message-----
    From: Samyajit Talukdar
    Sent: 10 April 2015 14:11
    To: MS MLRP Returns
    Subject: FW: 22222
    Thanks &amp; Regards,
    Samyajit Talukdar
    : [email protected]
    --MIME_Boundary
    Content-Type: application/vnd.ms-excel; name="soainfra_v$session.xls"
    Content-Transfer-Encoding: base64
    Content-Description: soainfra_v$session.xls
    Content-Disposition: attachment; filename="soainfra_v$session.xls";
      size=25618; creation-date="Thu, 27 Nov 2014 09:56:35 GMT";
      modification-date="Fri, 10 Apr 2015 09:28:23 GMT"
    0M8R4KGxGuEAAAAAAAAAAAAAAAAAAAAAPgADAP7/CQAGAAAAAAAAAAAAAAABAAAAAQAAAAAAAAAA
    EAAAJgAAAAEAAAD+////AAAAAAAAAAD/////////////////////////////////////////////
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
    AAAAAAAAAAAAAAAAAAA=
    --MIME_Boundary--
    If I put a delete action in the request to Publish action for SaveFile BS to delete the $attachments, the created file contains only the email body part and the attachment boundary part is missing.
    I've uploaded the OSB log with full trace enabled.
    How can I pass the  encodedAttachment to the BS for saving the files?
    Would iterating through the $aatachment/ctx:attachment give me the individual attachments for saving and processing, as there are separate binary-content refs in them?
    Any help to achieve my requirement is highly appreciated.
    Thanks in advance.

    Hi Manoj,
    Thanks for the quick reply to my query.
    The thing is, the link you have provided talks more from changing the business Service configurations i.e. the type of the service etc, but the concern is, that the Business Service is already Implemented and hence the change would not be an appropriate option for me.
    Please let me know, if any more information is required.
    Thanks & Regards,
    Anu

Maybe you are looking for

  • Error while Installing Nw04S SR2 Developer Workplace - Import Java Dump

    Hi All, Iam trying to install NW04S SR2 Developer Workplace.Iam getting error in 15 th step i.e Import Java Dump. I have gone thru SDN threads and check the basic things like Java Version,whether i can connect to database or not.. Iam using SQL Serve

  • XML,CLOB  AND MEMORY : CONSUMED BUT NOT RELEASED !!!

    Hi, I'm working with XMLGEN Package and XSLT Processor to produce XML Document on Oracle 8.1.7.3 server, I use 9i XML and Java packages. I'm facing the following BIG MEMORY problem : Environment : I must generate an XML parsed with an XSL document of

  • What's keeping me from buying the W540

    I have $$ to spend and no Lenovo to spend it on.   Here's what's keeping me from buying the W540: 1) Physical buttons have been removed above the trackpad.  Many, many people complain about this in the W540 reviews: "Touchpad: I've commented elsewher

  • Suddenly all my contacts were replaced by my brothers. How do I get mine back?

    Suddenly all my contacts were replaced by my brother's. How do I get mine back?

  • Photo web site

    My first web page is up using iWeb 2.0.4 It seems alright, but I'd like to add the feature of being able to click on a photo and have it enlarge. Most photo websites do this as a matter of course, but I can't see how iWeb will let me do this. Any ide