Passing attachment from a SOAP Proxy to a REST Business Service

I am trying to create a SOAP proxy for a REST service on OSB 10g. I have to send a binary attachment as part of my SOAP request. I tried to use Service Callout to call my REST business service. Even though I receive the attachment as part of the request (I could log $attachments and see it), it is not being sent to the Business Service. I would appreciate any help. Thanks.
Ardi

OK, here is what I found out. I was using service callout to invoke the REST BS which does not seem to work, which I have not understood why?
If I change to Routing to the invoke the BS I could pass the attachment and get it to work. I would appreciate any thoughts on the Service Callout issue.
Thanks,
Ardi

Similar Messages

  • SOAP proxy for RESTful business service

    Hi,
    I have a requirement to consume a 3rd-party RESTful web service from within WebLogic Integration 9.2.3.
    My organisation also has an OSB 10.3 installation which is lucky since WLI 9.2.3 does not readily support RESTful service consumption.
    My plan is therefore to proxy the RESTful service via the OSB with a SOAP proxy service and consume the proxy from WLI.
    Can anyone provide guidance on how I might go about this?
    Cheers,
    Rob

    I want to give it a try :)
    1. Create a business service with the 3rd-party RESTful web service WSDL and point it to the URL where it is currently deployed/hosted.
    2. Create a Proxy Service to invoke the 3rd-party RESTful web service via the business service. (I think you will need to define a simple WSDL to be able to use this service from WLI)
    3. Then import the ProxyService WSDL in WLI and invoke the same via the WebServiceControl.
    I hope this works out well for you.
    Thanks,
    Patrick.

  • ALSB passing NTLM security credentials to end point URL in business service

    Hi,
    We are using AXIS API to pass NTLM authentication details to SharePoint Web Service by setting the user name and password details as below.
    call.setUsername
    call.setPassword
    This is working fine when we invoke the MOSS search WSDL directly. However, when we introduce ALSB in between and create proxy and business service, the user name and password set using call.setUsername and call.setPassword are not passed correctly and we are getting the below error.
    BEA-380000: Unauthorized
    Could any one help how this can be resolved?
    Thanks
    Sampath

    RK,
    Use the *$inbound/ctx:transport/ctx:request/http:query-string* element to get all the arguments in the URL.
    http://docs.oracle.com/cd/E13159_01/osb/docs10gr3/httppollertransport/transports.html#wp1083292.
    After that You can have conditional routing to Route it specific BS either Fiction BS or WarBased BS or you can try using Routing Table.
    For doing that do i need to maintain any schema for Business Service?No , I think if you just need to route the request to JMS BS coming from Other Application,
    But if You want to validate the request which you would be sending to BS then use schema to validate your incoming request.
    Regards,
    Abhinav

  • "NO_RECEIVER_CASE_BE" error with SOAP Sender assigned to a Business Service

    Hi all,
    we have a strange error with XI3.0
    We created a configuration scenario where the initial step is done by a Business System, that uses a SOAP Sender communication channel to send its request. And this works great when testing it with XMLSpy.
    But we then needed to shift from a Business System to a Business Service, as the machine sending the SOAP request changed and was not anymore part of the landscape, but elsewhere.
    Hence we recreated a SOAP sender which we assigned to this new business service, doing absolutely the same configuration work as for the other soap sender of the former business system.
    Yet when testing it through XMLSpy, we everytime get a NO_RECEIVER_CASE_BE error back, stating that "No receiver could be determined". Yet when checking in sxi_cache, receiver determination is clearly there. All the blogs I went into are only refering to Business System for a SOAP sender, so I was wondering if any of you already managed to assign a SOAP sender to a business Service.
    Regards,
    Cedric

    hi,
    so you sue SOAP to make a query ? (sync)
    or to send the data to XI ? (async)?
    if async then make sure
    you use <b>Quality of Service</b> other then BE
    in your soap adapter channel
    Regards,
    michal
    <a href="/people/michal.krawczyk2/blog/2005/06/28/xipi-faq-frequently-asked-questions"><b>XI / PI FAQ - Frequently Asked Questions</b></a>

  • How to Pass Attachment from one process to other.

    Hi,
    Suppose there are two processes.I am starting 2nd process from 1st process through GP API.
    How to pass the attachments?
    Regards,
    Pratik

    Hi,
       I seems its GP related. Try out the link below hope u find the solution

  • Cannot pass data from Web Dynpro to XI using a Web Service

    Hi All,
    We have been facing some issues when we try to pass on a SOAP / XML message via a WSDL from a WebDynpro App to XI - No data is reaching XI interface. The payload data details for the inbound message in XI is empty. When testing the WSDL separately using XML spy the data passes to the XI successfully.
    The problem only occurs when we pass on the data from the WebDynpro component.
    We are also passing additional information _user and _password to ensure authenticated access.
    Steps that we completed so far:
    1. Created a WSDL which we can use to communicate to XI interface.
    2. Imported WSDL using webdynpro Web Service Model import
    functionality.
    3. Bound WSDL with webdynpro components.
    4. Pass on data through WSDL contexts.
    5. Execute WSDL model.
    Any help would be much appreciated.
    Thanks,
    RR

    Hi,
    please check document:
    Almost Everything about Transaction Launcher u2013 Part
    http://www.sdn.sap.com/irj/scn/index?rid=/library/uuid/3059fb20-987f-2e10-ef82-d147b9b5e8b4
    Denis

  • Extract fields from the SOAP body during mapping

    Hi all,
    I have an Abap Proxy to SOAP scenario with a main payload and an attachment. During mapping I need the reference of the attachment to store the reference in the main payload. I don't need the attachment itself.
    SOAP-Body:
      <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
    - <!--  Eingangs-Message
      -->
    - <SAP:Manifest xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:wsu="http://www.docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" wsu:Id="wsuid-manifest-5CABE13F5C59AB7FE10000000A1551F7">
    - <SAP:Payload xlink:href="cid:payload-E742FF47D930DE5CE1000000C107826A @sap.com">
      <SAP:Name>MainDocument</SAP:Name>
      <SAP:Description />
      <SAP:Type>Application</SAP:Type>
      </SAP:Payload>
    - <SAP:Payload xlink:href="cid:payload-EE42FF47D930DE5CE1000000C107826A @sap.com">
      <SAP:Name>hugo.txt</SAP:Name>
      <SAP:Description />
      <SAP:Type>ApplicationAttachment</SAP:Type>
      </SAP:Payload>
      </SAP:Manifest>
    I need the attachment reference as string inside my main payload: cid:payload-EE42FF47D930DE5CE1000000C107826A @sap.com
    I wrote an user defined function to select the MessageId, but the MessageId is only part of the reference to the main payload.
    String constant;
    java.util.Map map;
    map = container.getTransformationParameters();
    constant = (String) map.get(StreamTransformationConstants.MESSAGE_ID);
    return constant;
    Has anybody an idea to get the reference of the attachment from the SOAP body with an user defined function or an adapter module?
    Thanks and kind regards
    Frank

    Hello,
    thank you all for the information. I found a solution for my problem on the sender side. I wrote an own helper class with  the method create_attach_from_txt_withref. This method  build an attachment with an own reference and write the reference back to the payload.
    This reference will not be changed within the execute_asynchronous method of the proxy.
    Method parameters:
    P_DATA        Importing   Type     STRING
    P_TYPE        Importing   Type     STRING
    P_NAME        Importing   Type     STRING
    P_ATTACHMENT  Exporting   Type Ref IF_AI_ATTACHMENT
    P_AREF        Exporting   Type     STRING
    Method coding:
    METHOD create_attach_from_txt_withref.
      DATA: lo_attachment TYPE REF TO cl_ai_attachment,
            l_payload     TYPE REF TO if_xms_payload,
            l_pref        TYPE        sxms_mf_s,
            l_guid        TYPE        guid_32,
            l_aref        TYPE        string.
      CLASS cl_ai_factory DEFINITION LOAD.
    " create the attachment
      p_attachment = cl_ai_factory=>create_attachment_from_text(
                    p_data = p_data             " attachment data
                    p_type = p_type             " attachment type
                    p_name = p_name ).          " attachment name
    " we need an implementing class of the interface if_ai_attachment
      lo_attachment ?= p_attachment.
    " get the new payload
      l_payload = lo_attachment->get_payload( ).
    " get the reference of the payload
      l_pref = l_payload->getreference( ).
    " build an own reference
      CALL FUNCTION 'GUID_CREATE'
        IMPORTING
          ev_guid_32 = l_guid.
      CONCATENATE 'payload-' l_guid '@sap.com' INTO l_aref.
      CONCATENATE 'cid:'     l_aref            INTO l_pref-href.
    " set our own reference
      l_payload->setreference( reference = l_pref ).
    " write back the modified payload
      lo_attachment->set_payload( p_payload = l_payload ).
    " return of the reference
      p_aref = l_aref.
    ENDMETHOD.
    If anybody has an idea how to read the soap body within an adapter module please let me know.
    Regards
    Frank

  • How come i can send an attachment from my aol mail

    how come I can send an attachment from my aol mail

    maybe because it's a service provided by most email providers?

  • Having problem in passing the values in business service in OSB.

    hi ,
    in my requirement i have to write a string in AQ , i have created a AQ adapter and a business service related to that now i have a variable which contains the string i have to pass, how i can paas this variable in my business service using service callout or publish ??
    Edited by: 990437 on Mar 6, 2013 1:36 AM

    I checked the Business Service using the test console . It worked fine .
    There is no listener on the AQ . The test messages and the messages sent using the service callout are still there.
    I have logged the body variable and I can see its fine.
    The thing is Service Callout works but at the end throws an error :
    <[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'> <<anonymous>> <> <0000Jp3_I_3ATOELn6k3yZ1HE3Q8000002> <1362640884743> <BEA-000000> <Started Payload Translation...>
    <[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'> <<anonymous>> <> <0000Jp3_I_3ATOELn6k3yZ1HE3Q8000002> <1362640884744> <BEA-000000> <End of Payload Translation...>
    <[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'> <<anonymous>> <> <0000Jp3_I_3ATOELn6k3yZ1HE3Q8000002> <1362640884744> <BEA-000000> <Extracting Header Properties from XMLRecord...>
    <[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'> <<anonymous>> <> <0000Jp3_I_3ATOELn6k3yZ1HE3Q8000002> <1362640884744> <BEA-000000> <No recipients specified...>
    <[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'> <<anonymous>> <> <0000Jp3_I_3ATOELn6k3yZ1HE3Q8000002> <1362640884746> <BEA-000000> <Successfully completed outbound interaction to queue - JOB_QUEUE>
    <[ACTIVE]ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'> <<anonymous>> <> <0000Jp3_I_3ATOELn6k3yZ1HE3Q8000002> <1362640884750> <BEA-000000> <Closing Interaction...>
    <[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'> <<anonymous>> <> <0000Jp3_I_3ATOELn6k3yZ1HE3Q8000002> <1362640884750> <BEA-000000> <Closing Interaction...>
    <[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'> <<anonymous>> <BEA1-01FF0221C1FA5B53DDE4> <0000Jp3_I_3ATOELn6k3yZ1HE3Q8000002> <1362640884751> <BEA-380003> <Exception on TransportManagerImpl.sendMessageAsync: unchecked exception:, java.lang.NullPointerException
    java.lang.NullPointerException
    at com.bea.wli.sb.transports.jca.codec.JCAAbstractMessage.getPart(JCAAbstractMessage.java:75)
    at com.bea.wli.sb.transports.jca.codec.JCAAbstractMessage.getPart(JCAAbstractMessage.java:31)
    at com.bea.alsb.ws.codec.internal.runtime.soap.SoapDocCodec.marshallBody(SoapDocCodec.java:67)
    at com.bea.alsb.ws.codec.internal.runtime.soap.SoapCodec.marshall(SoapCodec.java:192)
    at com.bea.alsb.ws.codec.internal.runtime.soap.SoapDocClientCodec.marshall(SoapDocClientCodec.java:58)
    at com.bea.wli.sb.transports.jca.codec.JCAClientCodec.createResponse(JCAClientCodec.java:57)
    at com.bea.wli.sb.transports.jca.binding.JCATransportOutboundOperationBindingServiceImpl.invoke(JCATransportOutboundOperationBindingServiceImpl.java:168)
    at com.bea.wli.sb.transports.jca.JCATransportEndpoint.sendRequestResponse(JCATransportEndpoint.java:209)
    at com.bea.wli.sb.transports.jca.JCATransportEndpoint.send(JCATransportEndpoint.java:170)
    at com.bea.wli.sb.transports.jca.JCATransportProvider.sendMessageAsync(JCATransportProvider.java:574)
    at sun.reflect.GeneratedMethodAccessor563.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)......................................
    On the other hand the Publish Action with either QoS mode does nothing . No exception , No messages in the AQ . It does not do anything at all.

  • 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.

  • Proxy service routing to business services

    Hi,
    I'm trying to route from a proxy service to one of two business services based on a value in a message - similar to the first AquaLogic tutorial, but I've written mine from the ground up. The message flow I've configured can decide which service to invoke, but then fails with this fault message: "Failed to get operation name from the incoming request." My two "business service" web services work fine by themselves. Does the proxy service's wsdl need to match up with the business services' wsdl's? What else could I be doing wrong?
    Thanks,
    Andrew

    I mapped the operation name using the ALSB console. When selecting the business service to route to when editing the message flow, you are required by the console to select an operation. My two business services have one operation each. I have selected the operations I want to use in the routing table. Since the ALSB console is providing me with a GUI tool to select the business service and operation, I'm expecting that it will take care of putting the operation name in the message after the routing step.

  • OSB 10.3: proxy based on business service

    Hello there,
    the functionality to build a proxy based on a business service with Workshop10.3 seems to have "dissapeared" from ALSB 10 to OSB 10.3
    Is it a bug or feature? (Or is it one of the "things will be different at Oracle now.")
    As far as I can see it is nowhere documented.
    thanks,
    Barossa

    This is still not documented and very confusing since the old docs are distributed with the downloads of the current OSB AND the "Definitive Guide to OSB" by Davies also tells you to do it with the Wizard. ;-)
    Please document! But for this posting I would still be dazed and confused!!

  • Removing Message Interface From Business Service

    Hi Experts,
    I want to remove one message interface from the Business Service.But, am not able to do so from ID.
    Can anyone tell me how can this be done?
    Thanks,
    Sushama

    hi,
    >>>Business Service.But, am not able to do so from ID.
    if you're talking about business service (not business system)
    then just select the message interface and press the minus sign
    that's all
    if this is not possible you may not have sufficient authorization
    Regards,
    Michal Krawczyk

  • 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

  • SOA Suite 11g - Email with attachments (Attachment from SOAP attachment)

    Hello,
    Can any one please help as to how I can do the following in Oracle SOA 11g:
    Using a BPEL process how can I send an Email with attachments where the attachment itself is coming from a SOAP attachment.
    The back ground is that we have portal sites from where the users can upload a document and then from their a SOA service is invoked and the attachment would be passed as (SOAP attachments) and then emails have to be send to users containing this uploaded document as the attachment.
    Thanks.
    feel free to email me [email protected]

    Yes, I need all supported standards and their version of SOA Suite 11g because my customer wants to upgrade from 10g to 11g, especially all supported standards and version number of OBPM 11g and OBPM 10g.
    A people has pasted all support standards and version number of OBPM 10g. I get a standard list of OSB.
    OBPM 11g supports:
    BPEL
    xml 1.0
    Servlet 2.3\JSP1.2 (J2EE 1.2),
    Servlet 2.4\JSP2.0(J2EE 1.4),
    Servlet 2.5\JSP2.1(Java EE 1.5)
    UDDI
    SOAP
    WSDL
    WS-BPEL for People
    XML Schema
    XPDL
    SOAP
    XQuery
    XLIFF
    XSL map
    XSLT
    UML
    Ant
    EJB 2.1, JPA/EJB 3.0
    JAAS
    Spring
    JAXB 1.0, JAXB 2.0
    XHTML
    HTML
    JSP
    JSF
    JSR-168
    XSQL
    WS-Policy
    But I cannot find the document about version number of the above standards

Maybe you are looking for