SSL JAVA und SOAP

icerus

Grünschnabel
Hi,

ich hab ein kleines Problem. Ich habe mit Hilfe dieser schönen und einfachen Seite einen kleinen Webservice geschrieben mit dem ein Applet kommunizieren kann (Echo-Server).

Gibt es eine Möglichkeit die Kommunikation zwischen den beiden Partnern mittels SSL zu verschlüsseln ?! Irgendwie finde ich keinen richtigen Ansatz.


Gruß
 
Hi,
erstmal danke für den Link :) ... Ich bin jetzt nach einiger Zeit bei diesem Tutoiral (http://www.java-tips.org/java-ee-ti...ices/using-jax-ws-based-web-services-wit.html) gelandet ...

In der Datei build.properties habe ich eine Zeile wie folgt umgeändert:
("<property name="server.cert.cn" value="Mac.local"/>")



Bis Schritt 8 funktionier alles prima. Aber bei dem Befehl ant run werden dann Exceptions geworfen:

run-client:
[exec] Retrieving port from the service ejbws.HelloEjbService@b6ffc
[exec] Invoking hello operation on the HelloEjbService port
[exec] javax.xml.ws.WebServiceException: java.net.SocketException: Unexpected end of file from server
[exec] at com.sun.xml.ws.transport.http.client.HttpClientTransport.checkResponseCode(HttpClientTransport.java:238)
[exec] at com.sun.xml.ws.transport.http.client.HttpTransportPipe.process(HttpTransportPipe.java:151)
[exec] at com.sun.enterprise.webservice.ClientSecurityPipe.processSecureRequest(ClientSecurityPipe.java:194)
[exec] at com.sun.enterprise.webservice.ClientSecurityPipe.process(ClientSecurityPipe.java:182)
[exec] at com.sun.xml.ws.tx.client.TxClientPipe.process(TxClientPipe.java:177)
[exec] at com.sun.xml.ws.api.pipe.helper.PipeAdapter.processRequest(PipeAdapter.java:115)
[exec] at com.sun.xml.ws.api.pipe.Fiber.__doRun(Fiber.java:595)
[exec] at com.sun.xml.ws.api.pipe.Fiber._doRun(Fiber.java:554)
[exec] at com.sun.xml.ws.api.pipe.Fiber.doRun(Fiber.java:539)
[exec] at com.sun.xml.ws.api.pipe.Fiber.runSync(Fiber.java:436)
[exec] at com.sun.xml.ws.client.Stub.process(Stub.java:248)
[exec] at com.sun.xml.ws.client.sei.SEIStub.doProcess(SEIStub.java:135)
[exec] at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:109)
[exec] at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:89)
[exec] at com.sun.xml.ws.client.sei.SEIStub.invoke(SEIStub.java:118)
[exec] at $Proxy41.hello(Unknown Source)
[exec] at client.Client.doTest(Client.java:53)
[exec] at client.Client.main(Client.java:42)
[exec] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[exec] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
[exec] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
[exec] at java.lang.reflect.Method.invoke(Method.java:585)
[exec] at com.sun.enterprise.util.Utility.invokeApplicationMain(Utility.java:266)
[exec] at com.sun.enterprise.appclient.MainWithModuleSupport.<init>(MainWithModuleSupport.java:449)
[exec] at com.sun.enterprise.appclient.MainWithModuleSupport.<init>(MainWithModuleSupport.java:259)
[exec] at com.sun.enterprise.appclient.Main.main(Main.java:200)
[exec] Caused by: java.net.SocketException: Unexpected end of file from server
[exec] at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:763)
[exec] at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:626)
[exec] at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:760)
[exec] at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:626)
[exec] at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:957)
[exec] at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:367)
[exec] at sun.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:318)
[exec] at com.sun.xml.ws.transport.http.client.HttpClientTransport.checkResponseCode(HttpClientTransport.java:201)
[exec] ... 25 more


Ich hänge da jetzt schon mehrere Stunden dran und finde einfach keine Lösung -.- ...

Dann hätte ich noch eine kleine Frage. Ich möchte nachher alles über ein Applet laufen lassen. Das müsste ich ja dann auch signieren um eine Verbindung mit dem Server aufbauen zu dürfen. Wenn ich für die SSL-Verbindung das selbe Zertifikat nutzen würde, könnte ich dann den Teil mit

-Djavax.net.ssl.trustStore=${truststore.location}
-Djavax.net.ssl.trustStorePassword=${ssl.password}
-Djavax.net.ssl.keyStore =${keystore.location}
-Djavax.net.ssl.keyStorePassword=${ssl.password}

weglassen?


Gruß icerus
 
Zurück