Hi all,
I have to send a SOAP message (and get a response) using HTTPS.
I use Apache Axis for sending the message.
The test client is simple:
----------------------------
System.setProperty("java.protocol.handler.pkgs",
"com.sun.net.ssl.internal.www.protocol");
Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
System.setProperty("javax.net.ssl.trustStore",
System.getProperty("user.home")+File.separator +"client.truststore");
System.setProperty("javax.net.ssl.keyStore",
System.getProperty("user.home")+File.separator +"client.keystore");
System.setProperty("javax.net.ssl.keyStorePassword", "changeit");
try {
Call call = ServiceFactory
.newInstance()
.createService(null)
.createCall();
call.setTargetEndpointAddress("https://host:port/Service/MyService" );
call.setOperationName( new QName("Service/MyService","myMethod"));
String ret = (String) call.invoke( null );
System.out.println(ret);
} catch (Exception e) { e.printStackTrace(); }
----------------------------
But I get an error when I invoke the call:
javax.net.ssl.SSLException: SSL V2.0 servers are not supported.
at org.apache.axis.AxisFault.makeFault(AxisFault.java:129)
at org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:131)
at
org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:71)
at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:150)
at org.apache.axis.SimpleChain.invoke(SimpleChain.java:120)
Does anyone know what's wrong with that? How can I make a call over
HTTPS? Or does anyone have an alternative?
Thanks in advance.
Best regards,
Dmitry.