Hello everybody!
I've been trying to get a working soap connection (code attached) through my
company's proxy gateway which requires authentication. I first got it to
work to the target via http, but when I tried to go against the same service
via https, I started getting the following exception:
[SOAPException: faultCode=SOAP-ENV:Client; msg=Error SSL connecting to
##.##.##.###:443 via httpdal2:80:
java.lang.reflect.InvocationTargetException;
targetException=java.lang.reflect.InvocationTargetException]
I am using yesterday's nightly build as the "stable" version didn't work,
and there have been several recent commits working on this problem.
Any ideas?
Thanks,
mike.
/*
* testauthproxy.java
*
* Created on October 18, 2002, 2:13 PM
*/
package sage2.src.Sensors.Core2;
import java.net.URL;
import java.lang.Integer;
import java.util.Hashtable;
import java.util.ArrayList;
import java.util.Vector;
import java.io.*;
import sun.misc.BASE64Encoder;
import org.apache.soap.*;
import org.apache.soap.rpc.*;
import org.apache.soap.encoding.SOAPMappingRegistry;
import org.apache.soap.encoding.soapenc.BeanSerializer;
import org.apache.soap.util.xml.QName;
import org.apache.soap.transport.http.SOAPHTTPConnection;
/**
*
* @author mike
*/
public class testauthproxy {
/** Creates a new instance of testauthproxy */
public testauthproxy() {
}
public static void main (String args[]) {
String ttarget = new String(
"https://##.##.##.###/soap/servlet/rpcrouter" );
String proxyHost = new String( "httpdal2" );
String proxyPort = new String( "80" );
String proxyUserName = new String( "ladwimi" );
String proxyPassword = new String( "sniper!duck!" );
/* Tried this approach based on Phil Bohnenkamp patch
String password = " " + proxyUserName + ":" + " " + proxyPassword;
BASE64Encoder B64Encoder = new BASE64Encoder ();
String encodedPassword = B64Encoder.encode( password.getBytes ());
System.setProperty( "https.proxyHost", proxyHost );
System.setProperty( "https.proxyPort", proxyPort );
System.setProperty( "https.proxyAuth", "basic " + encodedPassword );
*/
// Tried this approach based on working http connection through
proxy based on Steve Nichol patch
SOAPHTTPConnection connection = new SOAPHTTPConnection();
connection.setProxyHost( proxyHost );
connection.setProxyPort( 80 );
connection.setProxyUserName( proxyUserName );
connection.setProxyPassword( proxyPassword );
System.err.println("List");
Call call = new Call ();
call.setSOAPTransport( connection );
call.setTargetObjectURI ("urn:sage2-sensor-core2");
call.setMethodName ("List");
call.setEncodingStyleURI( Constants.NS_URI_SOAP_ENC );
Response resp = null;
try { resp = call.invoke ( new URL( ttarget ), /* actionURI */ "" );
}
catch( Exception ex ) { System.err.println("Editor.List exception: "
+ ex); System.exit(1); }
if (resp.generatedFault ()) {
Fault fault = resp.getFault ();
System.out.println ("Editor.List: Call failure: ");
System.out.println ("-Fault Code = " + fault.getFaultCode ());
System.out.println ("-Fault String = " + fault.getFaultString ());
System.exit(1);
}
Parameter result = resp.getReturnValue();
System.err.println( ">>>>>> " + result.getValue() );
}
}
--
To unsubscribe, e-mail: <mailto:soap-user-unsubscribe@;xml.apache.org>
For additional commands, e-mail: <mailto:soap-user-help@;xml.apache.org>