Hallo, ich verwende Jax-WS um Webservices zu realisieren. Unter MAC funktioniert die Applikation ohne Probleme (Jar). Unter Windows und Linux hingegen nicht. Hier erhalte ich folgende Meldung.
Die Meldung kann aber nicht sein, da der angegebene Port nicht verwendet wird. Es ist auch egal, welchen Port ich angebe. Die Meldung bleibt immer gleich.
Hier ein paar Codeschnipsel.
Die Zeile 150 sieht wie folgt aus
Ich stehe auf dem Schlauch und finde im Internet keine andere Erklärung. Hat wer eine Idee!
Code:
.....
Exception in thread "Thread-2" com.sun.xml.internal.ws.server.ServerRtException: Server Runtime Error: java.net.BindException: Address already in use: bind
at com.sun.xml.internal.ws.transport.http.server.ServerMgr.createContext(Unknown Source)
at com.sun.xml.internal.ws.transport.http.server.HttpEndpoint.publish(Unknown Source)
at com.sun.xml.internal.ws.transport.http.server.EndpointImpl.publish(Unknown Source)
at com.soft2tec.stanandoli.oli.init.WebService.startWebService(WebService.java:150)
at com.soft2tec.stanandoli.oli.init.WebService.run(WebService.java:163)
at java.lang.Thread.run(Unknown Source)
Caused by: java.net.BindException: Address already in use: bind
at sun.nio.ch.Net.bind(Native Method)
at sun.nio.ch.ServerSocketChannelImpl.bind(Unknown Source)
at sun.nio.ch.ServerSocketAdaptor.bind(Unknown Source)
at sun.net.httpserver.ServerImpl.<init>(Unknown Source)
at sun.net.httpserver.HttpServerImpl.<init>(Unknown Source)
at sun.net.httpserver.DefaultHttpServerProvider.createHttpServer(Unknown Source)
at com.sun.net.httpserver.HttpServer.create(Unknown Source)
... 6 more
Die Meldung kann aber nicht sein, da der angegebene Port nicht verwendet wird. Es ist auch egal, welchen Port ich angebe. Die Meldung bleibt immer gleich.
Hier ein paar Codeschnipsel.
Code:
....
private static Map<String, Endpoint> endpoints = new HashMap<String, Endpoint>();
private Map<String, Object> serviceImp = new HashMap<String, Object>();
....
public WebService(String host, int port, int backlog) {
// Create new Endpoints
this.host = host;
this.port = port;
this.backlog = backlog;
serviceImp.put("ressourcename", new RessourcenNameImpl());
...
serviceImp.put("applicationversion", new ApplicationVersionImpl());
for (String ressource : serviceImp.keySet()) {
Endpoint endpoint = Endpoint.create(serviceImp.get(ressource));
endpoints.put(ressource, endpoint);
}
.....
public void startWebService() throws Exception {
logger.info("Starting Webservice on " + host + " port " + port);
server = HttpServer.create(new InetSocketAddress(port), backlog);
// httpThreadPool = Executors.newFixedThreadPool(0);
// server.setExecutor(httpThreadPool);
logger.info("Publish endpoints");
// Publish now all endpoints
for (String ressource : serviceImp.keySet()) {
Endpoint endpoint = endpoints.get(ressource);
endpoint.publish("http://" + host + ":" + port + "/abc/"
+ ressource);
}
server.start();
}
Die Zeile 150 sieht wie folgt aus
endpoint.publish("http://" + host + ":" + port + "/abc/"
Ich stehe auf dem Schlauch und finde im Internet keine andere Erklärung. Hat wer eine Idee!