使用Jax-WS端点发布WS

dan*_*iel 20 java web-services jax-ws endpoint

我构建了一个最小的Web服务,并使用javax.xml.ws.Endpoint发布它.如果我试图获得WSDL http://localhost:1234/AddService?wsdl它工作正常.

试图收到它http://192.168.0.133:1234/AddService?wsdl,我没有收到任何东西.该地址与localhost相同.

是否有可能在不提供地址的情况下发布网络服务?

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());
    }
}
Run Code Online (Sandbox Code Playgroud)

将代码更改为

Endpoint.publish("http://192.168.0.133:1234/AddService", new AddService());
Run Code Online (Sandbox Code Playgroud)

获取IP地址上的wsdl但不是localhost.

是不是只有定义端口的可能性?

ivy*_*ivy 37

你能尝试在0.0.0.0上发布吗?

  • 很高兴听到它有效.localhost是ip 127.0.0.1,而Endpoint.publish(显然)只绑定到提供的地址.使用0.0.0.0,您可以告诉它"监听"到任何IP地址(与您的计算机相关联)的传入连接.仅绑定到特定的IP地址可能是一个方便的功能,例如,如果您希望您的服务仅适用于某个子网... (3认同)
  • 这是一种"官方方式",但它的工作原理是ipv4规范的问题; 查看http://en.wikipedia.org/wiki/IPv4或有关此主题的stackoverflow问题:http://stackoverflow.com/search?q = 0.0.0.0 (3认同)
  • 这有效.localhost,0.0.0.0和192.168.0.133让我获得了wsdl.但是为什么不这样做,同时在localhost或其他ip上发布. (2认同)
  • IPv6的等价物是什么? (2认同)