# HTTPS unter JAX-WS verwenden



## dontPointAtme (30. Aug 2011)

Hallo erstmal,
ich habe mich die letzten paar Tage mehr schlecht als recht in JAX-WS bzw Webservices generell eingelesen und ein kleines Beispielprogramm erstellt, es besteht zum einen aus einer Service Klasse (namens Server), die einen Webservice bereitstellt und zum anderen aus einer "Provider Klasse" die diesen Webservice per Endpoint.publish() published (siehe Unten). Per wsimport hab ich dann die Klassen für den Client erzeugen lassen, der per ServerService().getServerPort() eine verbindung zu dem Webservice aufbaut.

Wie konfiguriere ich diesen Aufbau jetzt so, dass die Verbindung zwischen Server und Client per SSL verschlüsselt wird?

Vielen Dank fürs durchlesen.

Hier noch die drei KLassen:
 - der Provider

```
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

import javax.xml.ws.Endpoint;

public class Provider {
	
	public static void main(String args[]) {

		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		Server server = new Server();

		Endpoint endpoint = Endpoint.publish("http://172.22.3.117:8080/DummyServer", server);

		System.out.println("rennt");
		
	}
}
```


 - der Service


```
import javax.jws.WebMethod;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;
import javax.jws.soap.SOAPBinding.Style;

@WebService
@SOAPBinding(style=Style.RPC)

public class Server  {

	
	//----------erster test---------
	@WebMethod
	public String getHalloWorldString(String name) {
	    return new String("Hallo World, hallo  "+name);
	 }
}
```

- der miniclient

```
public class Tester {

	public static void main(String[] args) {

		ServerService ss = new ServerService();
		Server sv = ss.getServerPort();
                System.out.println("Serverantwort " + sv.getHalloWorldString("ein netter user aus dem Java-forum"));
        }
}
```



____________________
i represent myselfe only


----------



## musiKk (30. Aug 2011)

JAX-WS wie es im JRE vertrieben wird, kann nicht mit SSL betrieben werden. Zumindest in Java 6, keine Ahnung, ob sich mit der 7 was geändert hat...

Mit CXF geht es jedenfalls.


----------



## dontPointAtme (30. Aug 2011)

vielen Dank für die schnelle Antwort!

Wäre es möglich, obiges Projekt in ein WAR file zu packen und dieses einem Tomcat zu deployen und dann das SSL über den Tomcat "ausenrum" zu legen?


----------



## musiKk (30. Aug 2011)

Das könnte gehen. JAX-WS über Tomcat ist allerdings nicht ganz so komfortabel. Bei der Referenzimplementierung gibt es eine Servlet-Bridge, über die man Web Services auch durch einen reinen Servlet-Container wie Tomcat publishen kann. Das wäre hier das Mittel der Wahl.


----------



## dontPointAtme (30. Aug 2011)

könntest du mir bitte grob sagen, wie das geht?
und welche Referenzimplementierung meinst du? Glasfish?


----------



## musiKk (30. Aug 2011)

Nein, die RI von JAX-WS. Glassfish nutzt die auch, aber man kann sie auch allein verwenden. Gemacht habe ich das noch nicht, aber es sollte ja genug Quellen geben, z. B. hier.


----------



## dontPointAtme (31. Aug 2011)

nach ca 4h googeln und lesen hab ich es immernochnicht geschaft besgtes projekt auf einen Tomcat zu kriegen....

kann mir bitte nochmal jemand helfen?


__________________
i represent myselfe only


----------



## Gelöschtes Mitglied 5909 (1. Sep 2011)

cxf + spring, wüsste nicht was daran "unkomfortabel" wäre


----------

