Ich habe einen minimalen Webdienst erstellt und ihn mit javax.xml.ws.Endpoint veröffentlicht. Wenn ich versuche, die WSDL bei http://localhost:1234/AddService?wsdl
zu bekommen, funktioniert es gut.Veröffentlichen eines WS mit Jax-WS-Endpunkt
Versucht es bei http://192.168.0.133:1234/AddService?wsdl
zu erhalten, erhalte ich nichts. Diese Adresse ist identisch mit localhost.
Gibt es eine Möglichkeit, einen Webservice ohne Angabe der Adresse zu veröffentlichen?
package test;
import javax.jws.WebMethod;
import javax.jws.WebService;
import javax.xml.ws.Endpoint;
@WebService
public class AddService {
@WebMethod
public int add(int a, int b){
return a+b;
}
public static void main(String[] args){
Endpoint.publish("http://localhost:1234/AddService", new AddService());
}
}
Ändern Sie den Code zu
Endpoint.publish("http://192.168.0.133:1234/AddService", new AddService());
wird mir die wsdl auf die IP-Adresse, aber nicht auf localhost.
Gibt es keine Möglichkeit, nur den Port zu definieren?
Das funktioniert. localhost, 0.0.0.0 und 192.168.0.133 bringt mir die WSDL. Aber warum nicht, während auf localhost oder der anderen IP veröffentlichen. – daniel
Freut mich zu hören, dass es funktioniert. localhost ist IP 127.0.0.1 und Endpoint.publish (offensichtlich) bindet nur an die angegebene Adresse. Mit 0.0.0.0 sagen Sie ihm, dass er eingehende Verbindungen zu jeder IP-Adresse (die mit Ihrem Computer verbunden ist) "hört". Es kann eine praktische Funktion sein, nur an eine bestimmte IP-Adresse zu binden, z.B. Wenn Sie möchten, dass Ihr Dienst nur für ein bestimmtes Subnetz verfügbar ist ... – ivy
Toller Trick. Ist das offiziell unterstützt oder nur ein praktischer Nebeneffekt? –