J'ai créé un service Web minimal et l'ai publié à l'aide de javax.xml.ws.Endpoint. Si j'essaye d'obtenir le WSDL au http://localhost:1234/AddService?wsdl
cela fonctionne très bien.Publication d'un WS avec Jax-WS Endpoint
En essayant de le recevoir au http://192.168.0.133:1234/AddService?wsdl
, je ne reçois rien. Cette adresse est la même que localhost.
Existe-t-il une possibilité de publier un service Web sans fournir l'adresse?
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());
}
}
Modification du code à
Endpoint.publish("http://192.168.0.133:1234/AddService", new AddService());
me fait wsdl sur l'adresse IP, mais pas sur localhost.
N'y a-t-il pas une possibilité de définir simplement le port?
Cela fonctionne. localhost, 0.0.0.0 et 192.168.0.133 me donne le wsdl. Mais pourquoi pas, tout en publiant sur localhost ou l'autre ip. – daniel
Heureux de l'entendre fonctionner. localhost est ip 127.0.0.1, et Endpoint.publish (évidemment) se lie uniquement à l'adresse fournie. Avec 0.0.0.0, vous lui dites d'écouter les connexions entrantes à n'importe quelle adresse IP (associée à votre ordinateur). Il peut s'agir d'une fonctionnalité pratique permettant de se lier uniquement à une adresse IP spécifique, par ex. si vous voulez que votre service ne soit disponible que pour un certain sous-réseau ... – ivy
Astuce. Est-ce officiellement soutenu ou juste un effet secondaire pratique? –