OSB Http Transport Custom Authenticatiion (X509 in Http header)

Hello!
I'm trying to solve this case. We have F5 Load balancer that terminates SSL Connections From client to the OSB. When terminating the SSL, the LB adds the clients certificate into headers of the Http request going to OSB.
OSb proxy service is configured to use custom authentication with token type X509 (only choice in the OSB console).
What happens when I send the request to OSB, is that I get http code 401 (unauthorized) this error on server log:
####<Sep 27, 2011 3:08:05 PM EEST> <Error> <WliSbTransports> <appserver02> <MANSERV02> <[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'> <<anonymous>> <> <> <1317125285598> <BEA-381327> <Transport-level custom token identity assertion failed
java.lang.ClassCastException: java.lang.String cannot be cast to [Ljava.security.cert.X509Certificate;
The HTTP header sent to OSB is in the messages below.
It has also been wihotu the BEGIN CERTIFICATE and END CERTIFICATE lines with same results.
Can somebody help me in:
a) Should the certificate be sent in what form from LB to OSB.
b) How should the OSB/WLS be configured for this to work?
OSB version is 10.3.1.
Request to the server is:
POST /prjTemplateService/ProxyServices/psvcHelloWolrdWSSSLInterface HTTP/1.1
Accept-Encoding: gzip,deflate
Content-Type: text/xml;charset=UTF-8
SOAPAction: "urn:#HelloWorldOperation"
User-Agent: Jakarta Commons-HttpClient/3.1
Host: <ip_here>
Content-Length: 459
SSLClientCertStatus: ok
SSLClientCertb64: -----BEGIN CERTIFICATE-----
MIICHDCCAYUCBE2sABcwDQYJKoZIhvcNAQEEBQAwVTELMAkGA1UEBhMCRkkxCzAJ
BgNVBAgTAkZJMQ4wDAYDVQQHEwVFc3BvbzEMMAoGA1UEChMDRVpaMQswCQYDVQQL
EwJUQzEOMAwGA1UEAxMFSnVzc2kwHhcNMTEwNDE4MDkxMDQ3WhcNMTEwNzI3MDkx
MDQ3WjBVMQswCQYDVQQGEwJGSTELMAkGA1UECBMCRkkxDjAMBgNVBAcTBUVzcG9v
MQwwCgYDVQQKEwNFWloxCzAJBgNVBAsTAlRDMQ4wDAYDVQQDEwVKdXNzaTCBnzAN
BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAvEPjEn3tvG3YuXlsLZnE7ZOKUJIF0Foy
c1hp+k7dyGUoHu3Phva7eVOO1cmHaGkFHkg+EnnK3+/Y58EMQAEwPOfQTj0/vSSk
cEx2X/2p2W7ACldJlYMxx2ZdFa1qaKTXtoieLy23/kJI+ZTfIoB+nmZiPRE9Hq8p
LTPlcMWVFnkCAwEAATANBgkqhkiG9w0BAQQFAAOBgQC3EZMQieOy4PFh+95R6W7/
3xaaRm/BzmEU/Wf9JweEwrnttdSmRKsxx9vSkADnD0J7jGO+koym5CWvJHbox4Sk
QMRPFaTOBRD4hzZeJMidds1LSzUm/QE9PXzjS/HLSjBBs5DmZfdR+uXPSFqTROkd
87R5veuPX5KeKQHs8iesTw==
-----END CERTIFICATE-----
SSLClientCertSN: 4d:ac:00:17
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:Hello:client">
<soapenv:Body>
<urn:HelloWorldRequest>
<urn:FirstName>Jolly</urn:FirstName>
<urn:Surname>Roger</urn:Surname>
</urn:HelloWorldRequest>
</soapenv:Body>
</soapenv:Envelope>
Response from OSB:
HTTP/1.1 401 Unauthorized
Connection: close
Date: Fri, 30 Sep 2011 08:32:33 GMT
Content-Length: 1518
Content-Type: text/html
X-Powered-By: Servlet/2.5 JSP/2.1
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Draft//EN">
<HTML>
<HEAD>
<TITLE>Error 401--Unauthorized</TITLE>
<META NAME="GENERATOR" CONTENT="WebLogic Server">
</HEAD>
<BODY bgcolor="white">
<FONT FACE=Helvetica><BR CLEAR=all>
<TABLE border=0 cellspacing=5><TR><TD><BR CLEAR=all>
<FONT FACE="Helvetica" COLOR="black" SIZE="3"><H2>Error 401--Unauthorized</H2>
</FONT></TD></TR>
</TABLE>
<TABLE border=0 width=100% cellpadding=10><TR><TD VALIGN=top WIDTH=100% BGCOLOR=white><FONT FACE="Courier New"><FONT FACE="Helvetica" SIZE="3"><H3>From RFC 2068 <i>Hypertext Transfer Protocol -- HTTP/1.1</i>:</H3>
</FONT><FONT FACE="Helvetica" SIZE="3"><H4>10.4.2 401 Unauthorized</H4>
</FONT><P><FONT FACE="Courier New">The request requires user authentication. The response MUST include a WWW-Authenticate header field (section 14.46) containing a challenge applicable to the requested resource. The client MAY repeat the request with a suitable Authorization header field (section 14.8). If the request already included Authorization credentials, then the 401 response indicates that authorization has been refused for those credentials. If the 401 response contains the same challenge as the prior response, and the user agent has already attempted authentication at least once, then the user SHOULD be presented the entity that was given in the response, since that entity MAY include relevant diagnostic information. HTTP access authentication is explained in section 11.</FONT></P>
</FONT></TD></TR>
</TABLE>
</BODY>
</HTML>

>
by using Client Cert authentication I have to set HTTPS required to true.
>
Yes.
>
When I try to invoke this service with http request, it redirects to https service.
This actually just trashes the entire idea of terminating SSL in the load balancer.
>
Not necessarily. Although direct HTTP request to WebLogic is redirected to HTTPS enabled port, you can still use this settings with WebLogic plugin. I'm not aware of your deployment, but I use Apache plugin for WebLogic, terminate SSL on Apache and I'm still able to send requests authenticated by certificate from client through HTTPS.
I don't know about F5, but I guess there should be similar feature as well.
http://download.oracle.com/docs/cd/E12840_01/wls/docs103/cluster/load_balancing.html

Similar Messages

  • RDS 2012 Disable HTTP transport - Enable only RPC over HTTP for both pre 8 and 8 RDP clients

    Hi,
    Is it possible to enable only RPC over HTTP for both pre 8 and 8 RDP clients?
    Thank you

    I would like to know this as well.

  • HTTP Transport Error in Net BEans 6.5

    Hello,
    I am consuming a web service using JAX-RPC. I am trying to log onto a web interface through my program but I am getting the following error:
    Feb 6, 2009 1:10:54 PM ttsample.Engine Login
    SEVERE: null
    java.rmi.RemoteException: HTTP transport error: java.net.UnknownHostException: http; nested exception is:
    Logged in...
    HTTP transport error: java.net.UnknownHostException: http
    at ttsample.TtsoapcgiPortType_Stub.databaseLogon(TtsoapcgiPortType_Stub.java:819)
    at ttsample.Engine.Login(Engine.java:77)
    at ttsample.Main.main(Main.java:30)
    Caused by: HTTP transport error: java.net.UnknownHostException: http
    at com.sun.xml.rpc.client.http.HttpClientTransport.invoke(HttpClientTransport.java:140)
    at com.sun.xml.rpc.client.StreamingSender._send(StreamingSender.java:96)
    at ttsample.TtsoapcgiPortType_Stub.databaseLogon(TtsoapcgiPortType_Stub.java:802)
    ... 2 more
    I searched the web and found that this is a proxy setting proble.
    I configured apache earlier to use the local host that run the web client.
    When I change the http port host and port number and try to login into the web client its giving me page not found error.So I changed the proxy settings to default and then restarted the system and then tried to log into the web client and it worked.
    I dont know where i am going wrong.I want to consume the WSDL and log into the web client but i am gettingthe above error.
    Anyone's help will be greatly appreciated.
    Thank You,
    Sravanthi.

    Where did you get the address: http://sal006.salnetwork.com:82/bin/lccountrycodes.cgi (shouldn't the 82 be 83 instead?)

  • OSB+how to change content type header in http transport header.

    I have a requirement where I need to change the value of:
    <http:Content-Type>text/xml; charset=utf-8</http:Content-Type>
    to the end system specific like:
    <http:Content-Type>application/abcd-cvs-v1+xml; </http:Content-Type>
    and the http:accept value to:
    <http:Accept>application/abcd-cvs-v1+xml</http:Accept>
    Can some one please explain how to do this.

    http://download.oracle.com/docs/cd/E13159_01/osb/docs10gr3/userguide/context.html
    Use replace action/insert on the follwoing QPath in trhe request action of the ServiceCallout/Routing as
    $outbound/ctx:transport/ctx:request/tp:headers/http:Content-Type
    $outbound/ctx:transport/ctx:request/tp:headers/http:Accept
    Manoj

  • 401 Unauthorized:HTTP transport error while calling external WSDL from BPEL

    Hi,
    I have simple BPEL process whic calls siebel WSDL file through partner link.
    I have successfully compiled and deployed BPEL process, when i initiate the Process, instace got errored out at invoke activity.
    Error Goes like this
    "<remoteFault xmlns="http://schemas.oracle.com/bpel/extension"><part name="summary"><summary>
    exception on JaxRpc invoke: HTTP transport error: javax.xml.soap.SOAPException:
    java.security.PrivilegedActionException: javax.xml.soap.SOAPException: Bad response: 401 Unauthorized</summary>
    </part></remoteFault>"
    Can anybody help on this issue, Could you please give me possible solution.
    Thank youl.

    we have not provided any authentication credentials to XMLSpy, we have just uploaded siebel WSDL file then sent the SOAP request with some customer Id then we have received proper response with all desired customer data.
    In the same way we tried to call same siebel WSDL file from BPEL process throgh partner link. errored instance has created with 401 unauthorised HTTP transport error..
    Do you think is this probem at siebel application side?
    We have deployed our BPEL process to SOA server which is having HTTP port 7777.
    as per my investigation,i found that we have to open port from siebel side (which WSDL file we are calling) which matches with above HTTP port number.
    Do you have any idea on this above clue? Please let us know more details on this.

  • CRM and ESB Integratio - Invoking ESB Process using HTTP transport

    We have a CRM application that communicates to another application using HTTP transport ( basically sends XML doc). Now We have requirement that the CRM App need to communicate with ESB Process. Please advise me what adapter should I use in ESB ? Is there any custom adapter ?
    Thanks in adavnce..
    Monica

    It depends on the protocol supported on the ESB. If it is SOAP over http you need some client stubs in your application to be able to communicate via SOAP. I'd start with checking Axis or Xfire.

  • Exception on JaxRpc invoke: HTTP transport error: javax.xml.soap.SOAPExcept

    Hi all,
    I am getting below error while invoking Siebel web service from BPEL service,
    <fault>
    -<remoteFault xmlns="http://schemas.oracle.com/bpel/extension">
    -<part name="summary">
    <summary>
    exception on JaxRpc invoke: HTTP transport error: javax.xml.soap.SOAPException: java.security.PrivilegedActionException: oracle.j2ee.ws.saaj.ContentTypeException: Not a valid SOAP Content-Type: text/html; charset=UTF-8
    </summary>
    </part>
    </remoteFault>
    </fault
    Please help me to resolve this issue.
    Thanks,
    Santosh M E

    Resolved, I was invoking an external Web service which is an Asynchronous 2 way.
    Didn't capture the reply back from the Async service.

  • HTTPS (Transport Level Security)

    Hi SDNers,
    I have a question regarding securing a SOAP Sender scenario using HTTPS. We are on PI 7.11 and have a SOAP-PI-RFC scenario. I have used a HTTP Sender instead of a SOAP channel to configure the option of 'HTTPS without Client Authentication'. I have generated the WSDL for this and tested successfully using SOAP UI.
    But our client needs a SSL certificate for this. As far as I understand SSL certificates are used only for message level security. But here they are OK with just transport level security. Do we need any certificates in this case? Please clarify.
    Another question I have is, is there any way of using HTTPS (transport level security) using SOAP Sender adapter? The option of 'HTTPS without Client Authentication' is not available anymore from PI 7.1 SP1 onwards. That is the reason I used a HTTP sender adapter.
    Any help is much appreciated  <text removed>
    Thanks & regards,
    Sudheer
    Edited by: Matt on Oct 12, 2011 6:49 AM

    Hi Abhishek,
    I am not able to see that option in the SOAP Sender channel configuration. Besides, the help link from SAP also does not show this option.
    Here is the link for EHP1:
    http://help.sap.com/saphelp_nwpi711/helpdata/en/48/3555240bea31c3e10000000a42189d/content.htm
    and here is the link you gave,
    http://help.sap.com/saphelp_nwpi71/helpdata/EN/fc/5ad93f130f9215e10000000a155106/content.htm
    Clearly, both are for configuring the sender SOAP channel, but the options are different if you notice.
    I am not able to understand where I am going wrong.
    Appreciate your quick response.
    Regards,
    Sudheer

  • HTTP transport error: javax.xml.soap.SOAPException: java.security.PrivilegedActionException: javax.xml.soap.SOAPException: Message send failed: String index out of range: -7

    All -
    I'm new to consuming web services in JDeveloper. I'm using Oracle JDEV 10.1.3.3/OC4J.  I'm using this version since it is compatible with Oracle EBS 12.1.3.  My intent is to pull data from our third party recruitment app (Success Factors) and load that data into Oracle HRIS.  I'm already doing this through a .NET application.  I'm converting it to be a Java Concurrent Program in EBS.  The code listed below is a stub call to verify I'm on the right track. I created a JDeveloper Web Services proxy project.  I'm testing it locally on my windows desktop.  When I'm able to consume the service successfully, then I'll think about moving it to the EBS server.
    I'm getting the following error when I invoke the following service:
    HTTP transport error: javax.xml.soap.SOAPException: java.security.PrivilegedActionException: javax.xml.soap.SOAPException: Message send failed: String index out of range: -7
    End point is: https://api4.successfactors.com/sfapi/v1/soap?wsdl
    Any help/assistance would be much appreciated. 
    Below is my code and output of my test:
    package emsc.oracle.apps.emscper.sfapi.proxy;
    import HTTPClient.HTTPConnection;
    import emsc.oracle.apps.emscper.sfapi.proxy.types.sfobject_sfapi_successfactors_com.IsValidSession;
    import emsc.oracle.apps.emscper.sfapi.proxy.types.sfobject_sfapi_successfactors_com.IsValidSessionResponse;
    import emsc.oracle.apps.emscper.sfapi.proxy.types.sfobject_sfapi_successfactors_com.Login;
    import emsc.oracle.apps.emscper.sfapi.proxy.types.sfobject_sfapi_successfactors_com.LoginResponse;
    import emsc.oracle.apps.emscper.sfapi.proxy.types.sfobject_sfapi_successfactors_com.LoginResult;
    import emsc.oracle.apps.emscper.sfapi.proxy.types.sfobject_sfapi_successfactors_com.Logout;
    import emsc.oracle.apps.emscper.sfapi.proxy.types.sfobject_sfapi_successfactors_com.LogoutResponse;
    import emsc.oracle.apps.emscper.sfapi.proxy.types.sfobject_sfapi_successfactors_com.SFCredential;
    import emsc.oracle.apps.emscper.sfapi.proxy.types.sfobject_sfapi_successfactors_com.SFParameter;
    import emsc.oracle.apps.emscper.sfapi.proxy.types.sfobject_sfapi_successfactors_com.Error;
    import java.io.File;
    import javax.xml.rpc.ServiceFactory;
    import java.util.ArrayList;
    import java.util.List;
    import java.util.Date;
    import javax.xml.ws.BindingProvider;
    import javax.xml.soap.SOAPException;
    import java.util.Map;
    import oracle.security.ssl.OracleSSLCredential;
    public class SFAPITest {
        // Declare members:      
        private String companyId;
        private String userName;
        private String password;
        private String developerKey;
        private Date   effDt;
        private String greaterThanEffDt;
        private String lessThanEffDt;
        // Declare constants:      
        final static private String breakLine = "+---------------------------------------------------------------------------+";
        final static private String format    = "yyyy-mm-dd";      
        private enum ReqId {
            PrimaryReq(25),
            PrimaryReqCEO(26),
            EmCarePrimary(27),
            RTI(28),
            EmCareClinical(29);
            private int reqId; 
            private ReqId() {
            private ReqId(int value) {
                reqId = value;
            public int getReqId() {
                return reqId;
        // Getters and Setters:  
        protected String getCompanyId() {
           return this.companyId;
        protected void setCompanyId(String value) {
           this.companyId = value;                 
        protected String getUserName() {
           return this.userName;
        protected void setUserName(String value) {
           this.userName = value;                 
        protected String getPassword() {
           return this.password;
        protected void setPassword(String value) {
           this.password = value;                 
        protected String getDeveloperKey() {
           return this.developerKey;
        protected void setDeveloperKey(String value) {
           this.developerKey = value;                 
        protected Date getEffDt() {
            return this.effDt;
        protected void setEffDt(Date value) {
            this.effDt = value;                 
        protected String getGreaterThanEffDt() {
           return this.greaterThanEffDt;
        protected void setGreaterThanEffDt(String value) {
           this.greaterThanEffDt = value;                 
        protected String getLessThanEffDt() {
           return this.lessThanEffDt;
        protected void setLessThanEffDt(String value) {
           this.lessThanEffDt = value;                 
        public void runProgram()
            SFAPIService mySFAPIService;
            String CompletionText = "";
            String effDtStr2 = null;
        /* Code your program logic here.
        * Use getJDBCConnection method to get the connection object for any
        * JDBC operations.
        * Use CpContext provided commit,rollback methods to commit/rollback
        * data base transactions.
        * Don't forget to release the connection before returning from this
        * method.
        /* Call setCompletion method to set the request completion status and
        * completion text.
        * Status values are ReqCompletion.NORMAL,ReqCompletion.WARNING,
        * ReqCompletion.ERROR.
        * Use Completion text message of length 240 characters. If it is more
        * than 240 then full string will appear in log file and truncated 240
        * characters will be used as request completion text.
        try
            ServiceFactory factory = ServiceFactory.newInstance();
            mySFAPIService = (emsc.oracle.apps.emscper.sfapi.proxy.SFAPIService)factory.loadService(emsc.oracle.apps.emscper.sfapi.proxy.SFAPIService.class);      
            SFAPI api = mySFAPIService.getSFAPI();
           /// SFAPI api = new SFAPI();
            //Map<String, Object> requestContext = ((BindingProvider) api).getRequestContext();
            //requestContext.put(BindingProvider.SESSION_MAINTAIN_PROPERTY, true);
            System.out.println("ServiceName => " + mySFAPIService.getServiceName().toString());
            System.out.println("End Point   => " + mySFAPIService.getServiceName().toString());
            System.out.println(breakLine);
            // Authentication: Login to SFAPI:
            SFCredential credential = new SFCredential();
            // Fake credentials being passed in for this post:   
            credential.setCompanyId("XXX");
            credential.setUsername("XXX");
            credential.setPassword("XXX");
            credential.setDeveloperKey("XXX");
            HTTPConnection httpsConnection = null;       
            OracleSSLCredential _credential = new OracleSSLCredential();      
            _credential.setWallet("\\\\\\C:\\Program Files\\Java\\jdk1.6.0_33\\jre\\lib\\security", "ParkEstes3");
            /*System.setProperty("javax.net.ssl.trustStore","C:\\\\\OraHome_1\\jdev\\jdevbin\\jdk\\jre\\lib\\security\\keystore");
            System.setProperty("javax.net.ssl.trustStorePassword","changeit");  
            System.out.println(System.getProperty("javax.net.ssl.trustStore"));*/
            // SFParameter: Define a generic SFParameter List.  This is a necessary parameter
            // to invoking calls in SFAPI:      
             /*System.setProperty("javax.net.ssl.keyStore",
             "file:\\\C:\\jdk1.4.1\\jre\\lib\\security\\client.keystore");
             System.setProperty("javax.net.ssl.keyStorePassword","welcome");         */
            /*  System.setProperty("oracle.net.wallet_location",
                          "(SOURCE=(METHOD=file)(METHOD_DATA=(DIRECTORY=\\\C:\Users\dparrish\Oracle\WALLETS)))");  // (2)                     */
            File kstore = new File("C:\\OraHome_1\\jdev\\jdevbin\\jdk\\jre\\lib\\security\\jssecacerts");
            boolean exists = kstore.exists();
            if (!exists) {
                System.out.println("Keystore does not exist");
            else {
                System.out.println("Keystore does exist");
            System.setProperty("javax.net.ssl.trustStore", kstore.getAbsolutePath());
            System.setProperty("javax.net.ssl.trustStorePassword", "changeit");
            //System.setProperty("proxySet", "false");
            //System.setProperty("http.proxyHost", "127.0.0.1");
            //System.setProperty("http.proxyPort", "8080");
            System.out.println(kstore.getAbsolutePath());
            List<SFParameter> lst = new ArrayList<SFParameter>();
            SFParameter param = new SFParameter();
            param.setName("");
            param.setValue("");
            lst.add(param);      
            SFParameter[] sfParam = lst.toArray(new SFParameter[lst.size()]);
            Login login = new Login();
            try {
                login.setCredential(credential);
                System.out.println("1");
                login.setParam(sfParam);
                System.out.println("2");
                LoginResponse loginResponse = new  LoginResponse();
                LoginResult loginResult = new LoginResult();
                try {
                     loginResponse = api.login(login);               
                catch (Exception e ) {
                    System.out.println(e.getMessage());
                System.out.println("3");
                try {               
                     loginResult = loginResponse.getResult();
                catch (Exception e ) {
                    System.out.println(e.getMessage());
                System.out.println("4");
                IsValidSession vs = new IsValidSession();                  
                IsValidSessionResponse isValidSessionResponse = api.isValidSession(vs);
                System.out.println("5");
                if (isValidSessionResponse.isResult()) {
                     System.out.println("Session is valid");
                     System.out.println("Result => " + loginResult.getSessionId());
                     System.out.println(breakLine);              
                    Logout logout = new Logout();
                    LogoutResponse logoutResponse = api.logout(logout);
                    if (logoutResponse.isResult()) {
                         System.out.println("Logout of SFAPI Successful");
                    else {
                        System.out.println("Logout of SFAPI Unsuccessful");
                else {
                     System.out.println("Session is invalid");
                    List<Error> errors = new ArrayList<Error>();
                    for (int i = 0; i < loginResult.getError().length;  i++) {
                        errors.add(loginResult.getError()[i]);
                    for (int i = 0; i < errors.size(); i++) {
                         System.out.println("Error Indice   => " + i);
                         System.out.println("Error Code:    => " + errors.get(i).getErrorCode());
                         System.out.println("Error Message: => " + errors.get(i).getErrorMessage());
                         System.out.println(breakLine);                                                          
                    } // end for loop of SFObject errors
                } // end InvalidSession
            catch (Exception e)
                 System.out.println("Session Credential Exception");
                 System.out.println("Exception => " + e.getMessage());
                 System.out.println(breakLine);                   
        catch (Exception e)
            System.out.println("Parameter List Exception");
            System.out.println("Exception => " + e.getMessage());
            System.out.println(breakLine);
        }   // end runProgram
        // Constructor:
        public SFAPITest()  {
        } // end constructor
        public static void main (String args[]) {
            try
                SFAPITest test = new SFAPITest();        
                test.runProgram();
            catch (Exception e) {
                System.out.println("main exception => " + e.getMessage());
    } // SFAPITest
    Here is the output with trace:
    WARNING: Unable to connect to URL: https://api4.successfactors.com:443/sfapi/v1/soap due to java.security.PrivilegedActionException: javax.xml.soap.SOAPException: Message send failed: String index out of range: -7
    Session Credential Exception
    Exception => ; nested exception is:
        HTTP transport error: javax.xml.soap.SOAPException: java.security.PrivilegedActionException: javax.xml.soap.SOAPException: Message send failed: String index out of range: -7
    +---------------------------------------------------------------------------+
    Process exited with exit code 0.

    The other end is throwing back a programming error.
    That might be because you are sending incorrect data and the other end fails to validate it.
    You might be able to guess based on your C# code.  But, since you are using soap one generic solution is available to you.
    - Get an http proxy interceptor like wireshark.
    - Run it while your C# app runs, collect the http requests from that.
    - Run it while running your java code, collect the http requests from that.
    Compare the two.

  • Exception on JaxRpc invoke: HTTP transport error in BPEL process

    Hi,
    One C# web service is running on IIS. I am trying to invoke this web service from BPEL process on the same system in which IIS is running. I have created the partnerlink using generated the WSDL file from IIS. I have changed the 'tempuri.org' to 'localhost' . I am able to compile and deploy the process but during execution it gives following error during invoke of web service
    <messages><input><Invoke_1_ProcessXMLDoc_InputVariable_1><part xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="parameters"><ProcessXMLDoc xmlns="http://10.100.34.70/"/>
    </part></Invoke_1_ProcessXMLDoc_InputVariable_1></input><fault><remoteFault xmlns="http://schemas.oracle.com/bpel/extension"><part name="summary"><summary>exception on JaxRpc invoke: HTTP transport error: javax.xml.soap.SOAPException: java.security.PrivilegedActionException: javax.xml.soap.SOAPException: Bad response: 401 Access Denied</summary>
    </part></remoteFault></fault></messages>
    Can anybody suggest to resolve this error?
    Thanks

    try removing your "localhost" from the windows hosts file and then do it all over again using your ip or hostname.

  • HTTP transport error:

    hi
    im getting the below error when im trying to deploy a web service in Jdeveloper using Weblogic 8.0.
    Error:
    WARNING: Unable to connect to URL: http://localhost:7001/Test-Sample-context-root/MyWebService1SoapHttpPort due to java.security.PrivilegedActionException: javax.xml.soap.SOAPException: Unable to read response: Underlying input stream returned zero bytes
    java.rmi.RemoteException: ; nested exception is:
         HTTP transport error: javax.xml.soap.SOAPException: java.security.PrivilegedActionException: javax.xml.soap.SOAPException: Unable to read response: Underlying input stream returned zero bytes
         at sample1.proxy.runtime.MyWebService1SoapHttp_Stub.add(MyWebService1SoapHttp_Stub.java:95)
         at sample.MyWebService1SoapHttpPortClient.add(MyWebService1SoapHttpPortClient.java:45)
         at sample.MyWebService1SoapHttpPortClient.main(MyWebService1SoapHttpPortClient.java:31)
    Caused by: HTTP transport error: javax.xml.soap.SOAPException: java.security.PrivilegedActionException: javax.xml.soap.SOAPException: Unable to read response: Underlying input stream returned zero bytes
         at oracle.j2ee.ws.client.http.HttpClientTransport.invokeImpl(HttpClientTransport.java:172)
         at oracle.j2ee.ws.client.http.HttpClientTransport.invoke(HttpClientTransport.java:148)
         at oracle.j2ee.ws.client.StreamingSender._sendImpl(StreamingSender.java:175)
         at oracle.j2ee.ws.client.StreamingSender._send(StreamingSender.java:112)
         at sample1.proxy.runtime.MyWebService1SoapHttp_Stub.add(MyWebService1SoapHttp_Stub.java:79)
         ... 2 more
    Process exited with exit code 0.
    Please let me know what will be the problem.

    Hi,
    I too face the same problem.
    The web service which i created do not need any authendication.
    Still im facing the same error. The exception caught is client transport exception.
    I too use weblogic 8.1 for testing.
    Thanks in advance
    Prakash Vijayan

  • Invoke Exception:exception on JaxRpc invoke:Http Transport Error:

    Hi,
    I created a BPEL process which access a Java class using WSIF. I deploy the Process to my local BPEL console. When i enter an input value and click on Post XML Message button, the process errors out.
    The Error is in the Invoke Section,
    <summary>exception on JaxRpc invoke: HTTP transport error: javax.xml.soap.SOAPException: java.security.PrivilegedActionException: javax.xml.soap.SOAPException: Bad response: 404 Not Found</summary>
    Please advice

    I noticed this Error when i selected Soap 1.2 and WSIF binding during creating a J2ee Web Service. When i select soap 1.1 and WSIF binding, i don't see this error.

  • HTTP transport  and Sun ONE Message Queue

    How do I get the HTTP transport to work? The docs don't seem to be correct.

    There are a couple of errors in the Sun ONE Message Queue docs that shipped with
    the product.
    The following are corrections for those errors.
    Servlet configuration
    Please note the following correction in the Sun ONE Message Queue 2.0
    Administration Guide, Appendix B -
    The class name of the HTTP Servlet in Step 4 of the "Configuring the Tunnel Servlet"
    section is given as:
    com.sun.messging.jmq.transport.httptunnel.servlet.HTTPTunnelServlet
    The correct class name is :
    com.sun.messaging.jmq.transport.httptunnel.servlet.HttpTunnelServlet
    Client setup for HTTP support
    1.The following connection factory attributes must be specified to use the HTTP
    tunnel connection support.
    JMQConnectionType :
    Set this attribute to "HTTP".
    JMQConnectionURL :
    Set this attribute to the URL that will be used to connect to the Sun ONE
    Message Queue message service (i.e. the URL for the HTTP tunnel servlet).
    Note that there is no need to specify the JMQConnectionHandler attribute as
    mentioned in the Sun ONE Message Queue 2.0 Administration Guide -
    Appendix B.
    2.Before running the client application, set the CLASSPATH variable to include
    jmqutil.jar in addition to the standard Sun ONE Message Queue jar files.
    This file is located at "/opt/SUNWjmq/lib/jmqutil.jar".
    If the "jmqutil.jar" file is not included in the CLASSPATH, the client will get a
    "java.lang.NoClassDefFoundError" exception for the class
    "com/sun/messaging/jmq/util/JMQTimerTask".
    3.If you are using an HTTP proxy, set "http.proxyHost" to the proxy server host
    name, and "http.proxyPort" to the proxy server port number using the -D
    command line option.
    An example command line would look like this:
    java -classpath
    /opt/SUNWjmq/lib/jms.jar:/opt/SUNWjmq/lib/jmq.jar:
    /opt/SUNWjmq/lib/jndi.jar:.:/opt/SUNWjmq/lib/jmqutil.jar
    -DJMQConnectionType=HTTP
    -DJMQConnectionURL=http://webserver:80/imq/servlet ClientApplicaiton

  • Https transport support for JAX-WS WebServices

    Hi All ,
    I am trying to implement JAX-WS WebServices that support https transport .To do so I added the following annotation *@Policy(uri = "policy:Wssp1.2-2007-Https-BasicAuth.xml)* in my Jws Implementation file for the JAX-WS WebServices but I got parsing error.Can anyone please confirm that JAX-WS supports the policy annotation in Impl file.If it is supported can a link/pointer/example could be given to implement https enabled JAX-WS WebService and the required configuration in wsdl file.
    Thanks and Regards

    It does but you've specified a policy that uses both HTTPS and basic HTTP authentication. If you require just HTTPS use "Wssp1.2-Https.xml". In turn you must enable the SSL port on the WLS server. See this blog post: http://one-size-doesnt-fit-all.blogspot.com/2009/02/enabling-ssl-and-disabling-non-ssl_17.html
    If you use JDev to generate the JAX-WS web services, given the policy annotation JDev willl put the policy in the WSDL file appropriately.
    CM.

  • SA520: problem when trying to access HTTPS over custom port in a site-to-site vpn

    We've set up a site-to-site VPN between our SA520 and our SmoothWall running at our data center. The tunnel is always connected, so that part runs fine
    What works fine:
    - Client 192.168.11.1 is able to start an RDP session (on it's default port 3389) to server 192.168.3.5
    - Client 192.168.11.1 can open a webpage which is hosted on server 192.168.3.5 (hosted on the default HTTP port 80)
    What doesn't work:
    - Client cannot open web page which is hosted on server 192.168.3.1 at the following url: https://192.168.3.1:441
    - or, for that matter, any https service in the 192.168.3.x LAN which runs on a different port
    To summarize:
    from the 192.168.11.x subnet, accessing services running on default ports (i.e. 80, 3389, 21) in the 192.168.3.x subnet works fine. doing the same for services running on custom ports (i.e. https over port 441) the connection to the webserver times out.
    Thanks in advance for any help you may provide.
    Glen

    hi luis,
    thank you for your reply. we've checked the smoothwall configuration, but couldn't discover anything which could cause this problem. we even tried replacing the sa520 with a draytek vigor router to set up an lan-to-lan vpn with the smoothwall. with the draytek in place we have no problems accessing the aforementioned servers, so it seems the issue is with the SA520.
    what exactly do you mean by creating an ACL from the remote WAN to our LAN? i assumed you meant creating a firewall rule, allowing traffic from the remote device's public ip to our LAN. however, in that case i need to enter an ip address of a device in our LAN, or else i cannot save this rule. as a test i entered the ip address of my machine as the destination address, but am still unable to access the aforementioned servers.
    here's how i set up the rule:
    from zone: UNSECURE (WAN/optional WAN)
    to zone: LAN
    service: ANY
    action: ALLOW always
    schedule: (not set)
    source hosts: Single address
    from: public ip of one of the aforementioned servers
    source NAT settings > external IP address: WAN interface address (cannot change this setting)
    source NAT settings >WAN interface: dedicated WAN (cannot change this setting)
    destination NAT settings > internal ip address: 192.168.11.123 (ip address of my machine)
    enable port forwarding: unchecked
    translate port number: empty
    external IP address: dedicated WAN

Maybe you are looking for

  • How do i know if my ipad is an ipad 2

    I purchased my iPad from a reputable retailer however it was a customer return and it did not have the original plastic on the package.  I am concerned that the customer may have done a switch and returned an iPad in and iPad 2 box for a bigger refun

  • Finder does not show new documents or images

    Hi, I have a new macbook pro (10.5.6) and installed the official Office 2008 for Mac on it. For weeks now I have the same problem that when I create new documents (word and jpg) and save them in the chosen folders in 'documents', they don't show up w

  • Manual postings to PCA for previous periods seems to get posted twice

    Dear All, Actual postings to PCA are performed manually using a custom job from SA38. Postings were made in FI for all previous (closed) periods . After running those jobs for previous periods to transfer those entries, some companies and accounts ar

  • Help needed: package 'ROracle' required by 'OREbase' not found

    Hello All, I am trying a simple regression model on ORE and i am facing the following error mod<-ore.doEval(+ function() { + library(ORE) + library(OREbase) + #library(biglm) + ore.sync() + ore.attach() + dat<-ore.pull(R_PROMO_POC) + mod<-lm(Total_Vo

  • AS3 menu to AS2 file back to AS3 menu?????

    *Also I should note, that the actions on the As3 file is coded on the frame. The actions in the AS2 file is coded on the corresponding button.