Creé un servicio web mínimo y lo publiqué usando javax.xml.ws.Endpoint. Si trato de obtener el WSDL en http://localhost:1234/AddService?wsdl
, funciona bien.Publicar un WS con Jax-WS Endpoint
Intentando recibirlo en http://192.168.0.133:1234/AddService?wsdl
, no recibo nada. Esta dirección es la misma que localhost.
¿Existe la posibilidad de publicar un servicio web sin proporcionar la dirección?
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());
}
}
Cambiar el código para
Endpoint.publish("http://192.168.0.133:1234/AddService", new AddService());
me consigue el WSDL en la dirección IP, pero no en el servidor local.
¿No hay posibilidad de definir el puerto?
Esto funciona. localhost, 0.0.0.0 y 192.168.0.133 me da el wsdl. Pero por qué no lo hace, mientras se publica en localhost o en la otra ip. – daniel
feliz de escuchar que funciona. localhost es ip 127.0.0.1 y Endpoint.publish (obviamente) solo se une a la dirección proporcionada. Con 0.0.0.0 le dices que 'escuche' las conexiones entrantes a cualquier dirección IP (asociada a tu computadora). Puede ser una característica práctica para enlazar solo a una dirección IP específica, p. si desea que su servicio esté disponible solo para una subred determinada ... – ivy
Gran truco. ¿Esto es oficialmente compatible o solo un práctico efecto secundario? –