You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@axis.apache.org by "Justin Lee (HFS)" <Ju...@harlandfs.com> on 2003/05/30 19:11:16 UTC

error finding class

When I try to connect to service with an https URL, I get this error:

java.lang.NoClassDefFoundError: COM/rsa/jsafe/y
 	at com.sun.net.ssl.internal.ssl.Handshaker.a([DashoPro-V1.2-120198])
 	at
com.sun.net.ssl.internal.ssl.ClientHandshaker.a([DashoPro-V1.2-120198])
 	at
com.sun.net.ssl.internal.ssl.ClientHandshaker.processMessage([DashoPro-V1.2-
120198])
 	at
com.sun.net.ssl.internal.ssl.Handshaker.process_record([DashoPro-V1.2-120198
])
 	at
com.sun.net.ssl.internal.ssl.SSLSocketImpl.a([DashoPro-V1.2-120198])
 	at
com.sun.net.ssl.internal.ssl.SSLSocketImpl.a([DashoPro-V1.2-120198])
 	at
com.sun.net.ssl.internal.ssl.AppOutputStream.write([DashoPro-V1.2-120198])
 	at java.io.OutputStream.write(OutputStream.java:56)
 	at
com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake([DashoPro-V1.2-120
198])
 	at
org.apache.axis.components.net.JSSESocketFactory.create(JSSESocketFactory.ja
va:213)
 	at
org.apache.axis.transport.http.HTTPSender.getSocket(HTTPSender.java:157)
 	at
org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:114)
 	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)
 	at org.apache.axis.client.AxisClient.invoke(AxisClient.java:180)
 	at org.apache.axis.client.Call.invokeEngine(Call.java:2526)
 	at org.apache.axis.client.Call.invoke(Call.java:2515) 
	at org.apache.axis.client.Call.invoke(Call.java:2210)
 	at org.apache.axis.client.Call.invoke(Call.java:2133)
 	at org.apache.axis.client.Call.invoke(Call.java:1656) 

I'm using 1.1_rc2 of axis on jdk 1.3.1.  i've prep'd the system best as I
know how with 

System.setProperty("java.protocol.handler.pkgs",
"com.sun.net.ssl.internal.www.protocol");

Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
SSLContext sslContext = SSLContext.getInstance(HTTPEmulator.TLS);
SSLSocketFactory factory = sslContext.getSocketFactory();
HttpsURLConnection.setDefaultSSLSocketFactory(factory);

This sort of set up works with our other https connections, but complains
when I try it with Axis.  Any ideas?

RE: error finding class

Posted by "Stu Halloway (DevelopMentor)" <st...@develop.com>.
Hi Justin,

Download the ClassLocator utility [1], and install it both in your Axis
webapp and in some other webapp where SSL is working correctly.

Go to the webapp where things are working, and surf to ClassLocator.jsp
and enter "COM.rsa.jsafe.y" see where the class is being loaded from.
Then go to ClassLocator in your Axis webapp and load some working class
(e.g. your service class) to see what is different.

Regards,
Stu

[1] http://staff.develop.com/halloway/code/ClassLocator.jsp

-----Original Message-----
From: Justin Lee (HFS) [mailto:Justin.Lee@harlandfs.com] 
Sent: Friday, May 30, 2003 12:11 PM
To: 'axis-user@ws.apache.org'
Subject: error finding class

When I try to connect to service with an https URL, I get this error:

java.lang.NoClassDefFoundError: COM/rsa/jsafe/y
 	at
com.sun.net.ssl.internal.ssl.Handshaker.a([DashoPro-V1.2-120198])
 	at
com.sun.net.ssl.internal.ssl.ClientHandshaker.a([DashoPro-V1.2-120198])
 	at
com.sun.net.ssl.internal.ssl.ClientHandshaker.processMessage([DashoPro-V
1.2-
120198])
 	at
com.sun.net.ssl.internal.ssl.Handshaker.process_record([DashoPro-V1.2-12
0198
])
 	at
com.sun.net.ssl.internal.ssl.SSLSocketImpl.a([DashoPro-V1.2-120198])
 	at
com.sun.net.ssl.internal.ssl.SSLSocketImpl.a([DashoPro-V1.2-120198])
 	at
com.sun.net.ssl.internal.ssl.AppOutputStream.write([DashoPro-V1.2-120198
])
 	at java.io.OutputStream.write(OutputStream.java:56)
 	at
com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake([DashoPro-V1.2
-120
198])
 	at
org.apache.axis.components.net.JSSESocketFactory.create(JSSESocketFactor
y.ja
va:213)
 	at
org.apache.axis.transport.http.HTTPSender.getSocket(HTTPSender.java:157)
 	at
org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:114)
 	at
org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.j
ava:
71)
 	at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:150)
 	at org.apache.axis.SimpleChain.invoke(SimpleChain.java:120)
 	at org.apache.axis.client.AxisClient.invoke(AxisClient.java:180)
 	at org.apache.axis.client.Call.invokeEngine(Call.java:2526)
 	at org.apache.axis.client.Call.invoke(Call.java:2515) 
	at org.apache.axis.client.Call.invoke(Call.java:2210)
 	at org.apache.axis.client.Call.invoke(Call.java:2133)
 	at org.apache.axis.client.Call.invoke(Call.java:1656) 

I'm using 1.1_rc2 of axis on jdk 1.3.1.  i've prep'd the system best as
I
know how with 

System.setProperty("java.protocol.handler.pkgs",
"com.sun.net.ssl.internal.www.protocol");

Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
SSLContext sslContext = SSLContext.getInstance(HTTPEmulator.TLS);
SSLSocketFactory factory = sslContext.getSocketFactory();
HttpsURLConnection.setDefaultSSLSocketFactory(factory);

This sort of set up works with our other https connections, but
complains
when I try it with Axis.  Any ideas?