# Problem mit SSL



## Guest (14. Okt 2008)

Ich habe einen Webservice-Client (Axis2 V1.3), der über eine SSL-Verbindung Daten von einem Webservice holt.
Dazu habe ich im Client den Schlüssel sowie das Passwort im System-Property gesetzt:


```
System.setProperty( "javax.net.ssl.trustStore", c://example );
System.setProperty( "javax.net.ssl.trustStorePassword", "pwd" );
```

Soweit funktioniert es auch auf meinem Entwicklungsrechner (windows xp, java 1.5.0_08).
Aber, wenn ich den Client auf einem Solaris-Rechner starte (installiert ist auch die selbe java-version), erhalte ich folgende Fehler:

Es sieht so aus, als würde die Methode getInstance in der Klasse Cipher fehlen. Komischerweise habe ich doch die selben java-Versionen.

Kann mir jmd helfen?


```
Exception in thread "main" java.lang.NoClassDefFoundError
       at javax.crypto.Cipher.getInstance(DashoA12275)
       at com.sun.net.ssl.internal.ssl.JsseJce.getCipher(JsseJce.java:90)
       at com.sun.net.ssl.internal.ssl.RSACipher.<init>(RSACipher.java:35)
       at com.sun.net.ssl.internal.ssl.RSACipher.getInstance(RSACipher.java:69)
       at com.sun.net.ssl.internal.ssl.PreMasterSecret.<init>(PreMasterSecret.java:82)
       at com.sun.net.ssl.internal.ssl.ClientHandshaker.serverHelloDone(ClientHandshaker.java:515)
       at com.sun.net.ssl.internal.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:160)
       at com.sun.net.ssl.internal.ssl.Handshaker.processLoop(Handshaker.java:495)
       at com.sun.net.ssl.internal.ssl.Handshaker.process_record(Handshaker.java:433)
       at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:818)
       at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1030)
       at com.sun.net.ssl.internal.ssl.SSLSocketImpl.writeRecord(SSLSocketImpl.java:622)
       at com.sun.net.ssl.internal.ssl.AppOutputStream.write(AppOutputStream.java:59)
       at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:65)
       at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:123)
       at org.apache.commons.httpclient.ChunkedOutputStream.flush(ChunkedOutputStream.java:190)
       at com.ctc.wstx.io.UTF8Writer.flush(UTF8Writer.java:99)
       at com.ctc.wstx.sw.BufferingXmlWriter.flush(BufferingXmlWriter.java:214)
       at com.ctc.wstx.sw.BaseStreamWriter.flush(BaseStreamWriter.java:311)
       at org.apache.axiom.om.impl.MTOMXMLStreamWriter.flush(MTOMXMLStreamWriter.java:118)
       at org.apache.axiom.om.impl.dom.NodeImpl.serializeAndConsume(NodeImpl.java:770)
       at org.apache.axis2.transport.http.SOAPMessageFormatter.writeTo(SOAPMessageFormatter.java:68)
       at org.apache.axis2.transport.http.AxisRequestEntity.writeRequest(AxisRequestEntity.java:84)
       at org.apache.commons.httpclient.methods.EntityEnclosingMethod.writeRequestBody(EntityEnclosingMethod.java:495)
       at org.apache.commons.httpclient.HttpMethodBase.writeRequest(HttpMethodBase.java:1973)
       at org.apache.commons.httpclient.HttpMethodBase.execute(HttpMethodBase.java:993)
       at org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:397)
       at org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:170)
       at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:396)
       at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:346)
       at org.apache.axis2.transport.http.AbstractHTTPSender.executeMethod(AbstractHTTPSender.java:520)
       at org.apache.axis2.transport.http.HTTPSender.sendViaPost(HTTPSender.java:191)
       at org.apache.axis2.transport.http.HTTPSender.send(HTTPSender.java:77)
       at org.apache.axis2.transport.http.CommonsHTTPTransportSender.writeMessageWithCommons(CommonsHTTPTransportSender.java:327)
       at org.apache.axis2.transport.http.CommonsHTTPTransportSender.invoke(CommonsHTTPTransportSender.java:206)
       at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:396)
       at org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:374)
       at org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:211)
       at org.apache.axis2.client.OperationClient.execute(OperationClient.java:163)
```


----------



## tuxedo (14. Okt 2008)

>> NoClassDefFoundError 

irgend eine Klasse befindet sich nicht im Classpath ... Welche? Darüber gibt der Stacktrace auskunft: DashoA12275 ??

- Alex


----------



## Gast (14. Okt 2008)

Ich habe den Client in eine Jar-Datei gepackt und es funktioniert auch auf meiner Windows-Plattform. Nur, unter Solaris mit der selben Java-Version geht es leider nicht.

Die Klasse Cipher, die als NoClassDefFoundError angezeigt wird, ist aber im Solaris vorhanden unter /lib/jre/lib/security/jce.jar

Vielleicht suche ich auch in einer ganz falschen Ecke?


----------



## tuxedo (15. Okt 2008)

Da der Fehler in der Cypher Klasse auftritt:



> Exception in thread "main" java.lang.NoClassDefFoundError
> at javax.crypto.Cipher.getInstance(DashoA12275)


, gehe ich mal davon aus, dass diese geladen werden kann, aber was ist das mit "DashoA12275"? Wenn er davon eine Instanz will, aber die Klasse nicht findet, kommts zu dieser Exception. 

Würde mal schauen ob es zu "DashoA12275" eine Klasse gibt. Wär4 auch möglich, dass die Solaris JRE dieses "DashoA12275" gar nicht kann.

Wäre halt interessant zu wissen was "DashoA12275" ist.

- Alex


----------

