Ho creato un servizio Web minimale e lo ho pubblicato utilizzando javax.xml.ws.Endpoint. Se provo a ottenere il WSDL allo http://localhost:1234/AddService?wsdl
, funziona correttamente.Pubblicazione di un WS con Jax-WS Endpoint
Cercando di riceverlo a http://192.168.0.133:1234/AddService?wsdl
, non ricevo nulla. Questo indirizzo è lo stesso di localhost.
Esiste la possibilità di pubblicare un servizio Web senza fornire l'indirizzo?
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());
}
}
Modifica del codice a
Endpoint.publish("http://192.168.0.133:1234/AddService", new AddService());
mi viene il WSDL sull'indirizzo IP, ma non su localhost.
Non c'è la possibilità di definire solo la porta?
Questo funziona. localhost, 0.0.0.0 e 192.168.0.133 mi danno il wsdl. Ma perché no, durante la pubblicazione su localhost o l'altro ip. – daniel
Felice di sentirlo funzionare. localhost è ip 127.0.0.1 e Endpoint.publish (ovviamente) si collega solo all'indirizzo fornito. Con 0.0.0.0 si dice di "ascoltare" le connessioni in entrata su qualsiasi indirizzo IP (associato al proprio computer). Può essere una comoda caratteristica associare solo a uno specifico indirizzo IP, ad es. se vuoi che il tuo servizio sia disponibile solo per una determinata sottorete ... – ivy
Grande trucco. Questo è ufficialmente supportato o solo un utile effetto collaterale? –