ALSB Business Service Call through corporate proxy

I would like to define an ALSB Business Service to make a http web service call to a business partner over the public internet. No problem normally we would just specify the appropriate URI in the Business Service.
This time, however, we need to go through a corporate proxy in the DMZ. How do I direct the Business Service to use the proxy? Can I use -Dhttp.proxyHost in the weblogic setDomainEnv.sh?

In the advances settings of your businiess service, you can define a proxy-server.
Or you can set the proxy server at JVM level
PROXY_HOST
PROXY_PORT
NON_PROXY_HOST
Marc
http://orasoa.blogspot.com

Similar Messages

  • Can a business service call a proxy service in OSB

    In Oracle service bus, can a business service call a proxy service and if yes , what is the scenario?
    Thanks in advance
    Priya

    Yes a business service can call a proxy service......for example set your PS as http proxy service and set the endpoint url of PS in the business service..... Lets say when you have three service callouts to be done...the third service callout needs to retried in case of any failures, then you may move the third service callout to a new proxy service and use the buisness service for calling it,,, use the BS retry settings for retyring..

  • OSB: Calling MTOM business service from non-MTOM proxy

    Hi,
    it is very easy to call non-MTOM business service from MTOM enabled proxy service, but I don't know how to do it in an opposite way. I have web service proxy (http) with binary data in Base64 in a soap body element and I'd like to call a business service (web service over http again) using MTOM format to send binary data in binary format (and not in Base64 as it is in proxy). Is it possible to somehow decode binary data from Base64 in a proxy service and send them from this proxy to a business service using MTOM?

    I understand the flow you propose, but I don't know how to pass decoded data from Java callout back to message flow. As far as I know I can only return primitives, String and XmlObject, because anything else can't be processed in message flow.Yes you are correct.But you can also return DataSource in java callout. Please http://download.oracle.com/docs/cd/E13159_01/osb/docs10gr3/userguide/pojo.html
    Now the working solution/POC --Tested on my local linux box
    package manoj.javacallout.binary;
    import java.io.BufferedReader;
    import java.io.ByteArrayOutputStream;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.io.OutputStream;
    import javax.activation.DataSource;
    import javax.mail.util.ByteArrayDataSource;
    import com.sun.org.apache.xml.internal.security.utils.Base64;
    * TODO: I have use sun internal API for decoding for simplicity. You should modify this code with any base64 decoding library
    * Ideally should be using using http://commons.apache.org/downloads/download_codec.cgi
    * @author mneelapu
    public class Util {
         public static DataSource decodeBase64(DataSource ds) throws Exception {
         InputStream in=ds.getInputStream();
         BufferedReader bin = new BufferedReader(new InputStreamReader(in));
         byte[] decodedB64=Base64.decode(bin);
         ByteArrayDataSource decodedDS= new ByteArrayDataSource(decodedB64,"binary/octet-stream");
         return(decodedDS);
    Java Callout to decodeBase64
    Parameters
    javax.activation.DataSource=[ $body/* ]
    Result
    javax.activation.DataSource=response
    Now replace the $body with the decoded base64 response from java callout
    Replace [ node contents ] of [  undefined XPath  ]
    in [ body ] with [ $response ]
    Use $BEA_HOME/modules/javax.mail_1.4.jar for compiling.
    Let me know if this solves your problem.
    Thanks
    Manoj
    Edited by: mneelapu on Apr 20, 2009 3:23 PM

  • Create Resource from URL (WSDL) through corporate proxy?

    In OSB I Create a Resource from a URL (WSDL) but I get a "No resource found".
    Im using this service to test...
    http://webservicex.net/stockquote.asmx?WSDL
    I suspect its because it needs to route though our corporate proxy. Do I set this up in the OSB or the Weblogic Administration Console?
    I setup the proxy in the OSB, but it appears I can only assign it to a business service at this point, but I cant create my business service till I load in the WSDL url.
    This works fine for internal WSDL's inside our network. Does anyone know how to configure weblogic or osb to take traffic through a corporate proxy so it can find the test wsdl on an external network?
    Thanks!

    Hi Cory,
    In SB Console go to System Administration > Global Resources > Proxy Servers... Add a new proxy server there...
    In your Business Service you configure the proxy server under Advanced HTTP Transport Configuration...
    You can create the WSDL on SB Console by copy and pasting the WSDL content...
    Hope this helps...
    Cheers,
    Vlad
    It is considered good etiquette to reward answerers with points (as "helpful" - 5 pts - or "correct" - 10pts)
    https://forums.oracle.com/forums/ann.jspa?annID=893

  • ALSB business service invocation of a collocated web service

    If my ALSB business service invokes a web service that is collocated in the same WebLogic Server instance - does the WebLogic Server have any optimization to avoid unnecessary processing (e.g. creating the soap message, etc.)? For example - the loan application ALSB sample. In my case, I created a web service using Beehive controls to integrate with my service logic - does that matter?

    The quick answer to your question is no, there is no optimization that bypasses the web services stack for web services that are hosted in the same container.
    There is an optimization called a local transport that bypasses much of network stack, but it can only be invoked by other proxies, and does not do what you describe.
    http://edocs.beasys.com/alsb/docs30/localtransport/localTransport.html#wp1075782
    If you have a specific requirement or enhancement request, I recommend you submit it via your local account team and/or post it on to the SOA Suite forum:
    SOA Suite

  • Remote MQs in ALSB business services

    Does anybody know whether it is possible to set the Transport Endpoint URI in an ALSB Business service to be a Remote MQ? The URI template is 'local-queue-name', which seems to imply it is a local queue, but I can't find anything in the documentation which states this.
    If so, is it possible to set a remote MQ as a foregn JMS provider?
    Any information greatly appreciated.

    Use two servcie callouts-- with different pay load elements
    Even publish will work, but we have to populate $body with relevant data for each BS before invoking publish
    Manoj

  • Custom hostname verifier not used when business services use a http proxy

    On OSB 10.3, we have a business services with an https end point. To access this end point, the business service used an http proxy.
    The certificate of the business endpoint is a wildcard certificate *.certificate.be . So we have a custom hostname verifier defined in the ssl configuration on the weblogic Server
    As we can see with the verbose mode at the jvm, the custom hostname verifier is not used when we use a http proxy in the business service. Osb use a ALSBHostnameVerifier and this one the defaulthostName
    <Mar 2, 2011 7:31:11 AM CET> <Debug> <AlsbTransports> <BEA-000000> <*** Connecting via proxy *** HTTP @ my.proxy.be/XXX.XXX.XXX.XXX:8080>
    [Loaded com.bea.wli.sb.transports.http.ALSBHostnameVerifier from file:/bea/osb_10.3/lib/sb-transports-main.jar]
    [Loaded weblogic.security.utils.SSLWLSHostnameVerifier$DefaultHostnameVerifier from file:/bea/wlserver_10.3/server/lib/weblogic.jar]
    Is there any way to force business service to used hostname verfifier defined in weblogic ssl server config?
    Thanks

    This is a known issue. Raise a case with support and ask a patch for bug#9182604
    Regards,
    Anuj

  • Syncronous web service call through B2B

    Hi There,
    I am trying to do a synchronous web service call through the B2B component. Is this possible? Has anybody got this working?

    Ok the process flow is as follows (or at least how I anticipate it):
    external party (HTTP) -> B2B (httpReceiver) -> Callout (HTTP) -> OSB -> sync reply -> B2B -> external party
    I have read the section you mentioned, but was hoping to see a XML snippet of the xml posted to the httpReceiver endpoint... I have tried adding those values in the soap:header section, no effect, also tried adding it to the soap:body section and adding the payload in the payload tag, which I assume should be the correct way...
    So in other words should the payload message I post to this URL have the following layout:
    <soap:Envelope xmlns.....>
    <soap:Header/>
    <soap:Body>
    <to>MyCompany</to>
    <from>extCompany</from>
    <documentProtocolVersion>1.0</documentProtocolVersion>
    <documentTypeName>order</documentTypeName>
    <payload><...payload goes here....></payload>
    </soap:Body>
    </soap:Envelope>

  • OSB example calling multiple business services using a single proxy service???

    Hi,
    I have three business services created using http urls i.e.
    1. LoginBS
    2. GetListBS
    3. LogoutBS
    My requirement is to get a list of names from GetListBS using a single proxy service and to call GetListBS I have to first call LoginBS then GetListBS i.e. after authentication and then finally logout.
    Kindly help with a detailed example for this and I am new to OSB.
    Thanks,
    Vik

    Hi Eric,
    Thanks for the response. We figured that it is possible to call multiple services with Split Join. However, we ran into the issue you described. We had a blocking call and had to wait until each of the services returned a response.
    However, we needed a Async model for our design and felt that this might not be a right fit.
    We are now looking at implementing the publish option with QoS configured as this fits our usecase better. Thanks for the help again.
    Rudraksh

  • Calling an MFL business service from a WSDL proxy service

    Hi,
    I'm using Service Bus v2.6, and trying to call an MFL business service from a wsdl based proxy service.
    I have done the following so far:
    - Define an MFL-based business service that writes MFL messages to a JMS queue and reads reply messages off another queue, and it works when I debug this business service by itself.
    - Define a wsdl proxy service that routes requests to the MFL business service.
    Since the tutorials don't have MFL examples, I'm struggling to get this working. I've tried different ways, but no luck.
    Here's my definition of the route node in the Proxy Service at the moment.
    1. Call a custom XQuery (.xq file) to convert incoming message to an XML representation of the MFL message, and assign the result to a variable "param1"
    2. Use "Service Callout" to call the MFL business service, and set Request Document Variable to "param1" and Response Document Variable to "param2".
    When I debug the flow, param2 (reply) comes up as empty, and I don't know how to make it work.
    I've turned on the JMS trace etc and the JMS bit is working (i.e messages being written, and read by the business service).
    There seems to be something wrong with the way I call it from the proxy service.
    Any help would be much appreciated..
    Thanks

    Hello,
    Can you indicate the classpath that you use to run your client, version of weblogic and the version of jaxrpc api that you are using.
    As a quick experiment adding the jaxrpc jar files to your classpath one at a time.
    This [url http://www.javaworld.com/javaforums/showflat.php?Cat=&Board=Enterprisejava&Number=3801&page=12&view=collapsed&sb=9&o=&fpart=1]chap seemed to have a similar problem to you and solved it by adding the jaxprc-spi jar file to his class path. It may be that the jaxrpc-impl is causing you greif.
    Also see this thread:
    http://forums.bea.com/bea/message.jspa?messageID=200612003&tstart=0
    Hussein Badakhchani
    www.orbism.com

  • OSB11g - Business Services - Calling WS throwing reader() error.

    I have an OSB11g Proxy and business services.
    my requirement is to get a WS SOAP request from a BPEL application on to my Proxy services. this proxy service will identify the URI to invoke and make a call on to BES via this business service with the exactly same request which i received in Proxy.
    I m getting the request xml as
    <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/ " xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/ " xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance " xmlns:xsd="http://www.w3.org/2001/XMLSchema ">
    <SOAP-ENV:Body>
    <RootTAG>
    <Name>Galvin</Name>
    <Age>12</Age>
    </RootTAG>
    </SOAP-ENV:Body>
    </SOAP-ENV:Envelope>
    I have chosen service call-out to make a call to BS.
    Option 1 In service call-out i have chosen request with SOAP body.
    XML which is sent to BS is looking as below.
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/ ">
         <soapenv:Header/>
         <soapenv:Body>
              <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/ " xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/ " xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance " xmlns:xsd="http://www.w3.org/2001/XMLSchema ">
                   <SOAP-ENV:Body>
                        <RootTAG>
    <Name>Galvin</Name>
    <Age>12</Age>
                        </RootTAG>
                   </SOAP-ENV:Body>
              </SOAP-ENV:Envelope>
         </soapenv:Body>
    </soapenv:Envelope>
    Option 2 In service call-out i have chosen request with document.
    XML which is sent to BS is looking as below.
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/ ">
    <soapenv:Header/>
    <soapenv:Body>
    <soapenv:Body>
    <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/ " xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/ " xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance " xmlns:xsd="http://www.w3.org/2001/XMLSchema ">
    <SOAP-ENV:Body>
    <RootTAG>
    <Name>Galvin</Name>
    <Age>12</Age>
    </RootTAG>
    </SOAP-ENV:Body>
    </SOAP-ENV:Envelope>
    </soapenv:Body>
    </soapenv:Body>
    </soapenv:Envelope>
    For both the request i am getting error as below .
    java.lang.IllegalStateException: getReader() called after getInputStream()
    But when i test the BS using WS tools (netTool) with the same request XML (which i receive in Proxy), i am getting proper response.
    > I have no clue where is the problem actually in my OSB application. Do i miss some header or some additional thing i need to do before setting in request xml in service call-out.
    > Also Webservice which BS invokes runs on a weblogic 8.1 application server. Will that be a problem?
    Thanks
    Sesha
    Edited by: 784261 on Jul 25, 2010 4:03 AM

    Anuj
    I found one discrepency in the call made from OSB and netTool(WS testing tool)
    The content length in the request to WS stub from OSB is - "content length =-1" . kindly help how to set the content length in the request.?
    when BES call is made from OSB
    ####<Jul 26, 2010 1:22:49 PM BST> <Info> <******STUB********> <hwwhapp4> <> <ExecuteThread: '11' for queue: 'weblogic.kernel.Default'>
    <<anonymous>> <> <000000> *<Entered get operation, content length =-1,content typetext/xml; charset=utf-8>*
    ####<Jul 26, 2010 1:22:49 PM BST> <Error> <HTTP> <> <managed1_hlluwli1> <ExecuteThread: '11' for queue: 'weblogic.kernel.Default'> <<WLS Kernel>> <>
    <BEA-101020> <[ServletContext(id=6879348,name=getWebServiceXML,context-path=/getWebServiceXML)] Servlet failed with Exception
    java.lang.IllegalStateException: getReader() called after getInputStream() called
    at weblogic.servlet.internal.ServletRequestImpl.getReader(ServletRequestImpl.java:1831)
    at Startservlet.doPost(Startservlet.java:78)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:1077)
    at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:465)
    at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:348)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:7047)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
    at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
    at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3902)
    at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2773)
    at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:224)
    at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:183)
    >
    when BES call is invoked from netTool
    ####<Jul 26, 2010 1:55:12 PM BST> <Info> <******STUB********> <hwwhapp4> <> <ExecuteThread: '13' for queue: 'weblogic.kernel.Default'>
    <<anonymous>> <> <000000> <Servlet Started>
    ####<Jul 26, 2010 1:55:12 PM BST> <Info> <******STUB********> <hwwhapp4> <> <ExecuteThread: '13' for queue: 'weblogic.kernel.Default'>
    <<anonymous>> <> <000000> *<Entered get operation, content length =737,content typenull>*
    Thanks
    Sesha

  • OSB Business Service calling an HTTPS service

    Hi
    I am using 11.1.1.5 SOA Suite and have a Business Service mapped to an https service.
    When I test it I get
    "The invocation resulted in an error: [Security:090477]Certificate chain received from servername was not trusted causing SSL handshake failure"
    My target https service (during dev) is a soapui mock service set up to provide an https interface for which I have create a certificate using Java's keytool.
    I don't want to have top buy a verisign (or similar) certificate for dev purposes, so my question is how do I get Weblogic to trust my self generated certificate?
    Any help would be much appreciated.
    Cheers
    Matt

    I managed to sort it out myslef.
    Create a certificate in a keystore using keytool.
    Export the certificate from the keystore
    keytool -export -alias mydomain -file mydomain.crt -keystore keystore.jks
    Import the certificate to the weblogic keystore
    keytool -import -trustcacerts -alias mydomain -file mydomain.crt -keystore cacerts
    It will ask you if trust this certificate, respond yes, restart SSL through the admin console - weblogic will now trust this certificate.
    Cheers
    Matt

  • OSB - Response timer when business service call external webservice slowly.

    I am a new bie about OSB, i am developing and testing business service OSB call external webservice. When i test by business service on osb console then time response is 10s, but when i program by C# call external webservice then time response is 0,000026s.
    pls help me.

    I am a new bie about OSB, i am developing and testing business service OSB call external webservice. When i test by business service on osb console then time response is 10s, but when i program by C# call external webservice then time response is 0,000026s.
    pls help me.

  • How to process a group of records in a single Web Service Call through SDK

    Hi Experts,
    The Business Scenario is as follows:
    Entire data of the customer accounts and Sales information of my client's is coming from an external system called DellBoomi into the ByD. We had a solution for this where we had used a custom inbound web service for some reasons and we cannot consume standard SAP provided web service to do this for customer account creation/updation in ByD. In the solution when we are trying with a custom web service we found that the associations of SalesArrangment and Payment Data are not PSM write enabled for partners. So we had taken a route of consuming SAP standard web service as a external web service and we consumed it and we used this for creation of the customer and for the updation we used the custom web service which we built.
    Here now the problem is it is taking long time to process a batch of 100 customers (almost 3hours it took). It is due to because we are trying to call SAP standard web service for each and every record of 100 records which are coming from DellBoomi and creating them and again updating some of the information with the use of custom web service.
    I know this is a long process and step which we had taken but there is no other way we had left with us.
    Now I am looking for a way to get all the 100 records of the DellBoomi together should invoke the SAP standard web service at a time instead of going and looking for it for each and every record.
    Can any one reply back with their valuable suggestions and solutions.
    Regards..
    Hanu K

    Hello,
    Thank you, guys, for advice. I should have explained calling context before, but what I basically need to do is to see if procedure(arg1, list(record(arg2, arg3))) returns true.
    I see array binding wouldn't fit there nicely. Internal procedure calls would be proc(next(arg1), next(arg2), next(arg3)) - if all these return true, external call should also return true. I would need to make a list of repeating values of arg1 and separate list(record(arg2, arg3)) into separate lists. I would also need to record whether the internal call returns true to deduce whether external call returns true.
    As I see no better way yet, I'll make Oracle procedure proc(arg1, arg2, arg3) and implement a loop in .NET side. If I optimize for performance, I'll probably pack the array of records into string and pass it for Oracle side to parse.
    Regards,
    Aurimas Pranskevicius

  • Web Service Call From Consumer Proxy in ABAP: Security Settings

    Hello All,
    Have a couple of questions:
    We are working on a scenario where we have to connect to a web service from ABAP. We have extracted the WSDL, and generated the client proxy, and configured a Logical Port. However, at the time of actual call, we receive an error message "Header http://schemas.xmlsoap.org/ws/2004/08/addressing:Action for ultimate recipient is required but not present in the message.". We suspect that this is a problem with the SOAP Header, which might be missing some tags, which are required by the Web Service. Problem is, we can not trace the Web Service SOAP Header. We can not see it in SOAMANAGER, or any other transaction as such.
    1. Does any body have an idea where to look for the complete SOAP Request, in case of a Consumer Proxy call?
    2. After re-configuring the Logical Port in SOAMANAGER, our scenario is now stuck at an error which says: 'SoapFaultCode:1  Security requirements are not satisfied because the security header is not present in the incoming message.'. This is probably happening because the target web service is WSE 3.0 compliant, and hence it is asking for UsernameToken and TimeStamp attributes in SOAP Header. In SOAMANAGER Logical Port configuration, we do not see a placeholder for providing this information. However, in earlier LPCONFIG transaction, there was a field for providing WS Security Profile for Operations. Where does this config lie in SOAMANAGER?
    Awaiting Replies.
    Thanks and Regards,
    Sid

    Hi Sid,
    The setting username/password in the manual logical port configuration will send the username and password in the http header as basic authentication. That's why you don't see a security header.
    To configure usernametoken you have to create the logical port out of a WSDL. This WSDL needs to contain WS-Security Policies . So in the policy section of the WSDL you see an XML element called UsernameToken.
    In order to let .Net generate a compatible WSDL you have to configure your WCF Web Service to use a CustomBinding with authentication "UsernameOverTransport". This is a username token in the security header send over SSL. So therefore you need an HTTPSTransport (instead of HTTPTransport) in the binding of your .Net WCF endpoint as well.
    For an example of such a WCF service configuration see my comment on http://weblogs.sdn.sap.com/cs/user/view/cs_msg/59671.
    Regards,
    Mathias

Maybe you are looking for