使用Endpoint类发布Web Service时,WSDL在哪里创建?

时间:2015-04-20 18:51:24

标签: java web-services wsdl server endpoint

例如:我的网络服务中有3个课程。

1 - SEI(Web服务的界面):

package calc;

import javax.jws.WebService;
import javax.jws.WebMethod;
import javax.jws.soap.SOAPBinding;
import javax.jws.soap.SOAPBinding.Style;

@WebService
@SOAPBinding(style = Style.RPC)
public interface CalculatorServer {
    @WebMethod float sum(float num1, float num2);
    @WebMethod float subtraction(float num1, float num2);
    @WebMethod float multiplication(float num1, float num2);
    @WebMethod float division(float num1, float num2);
}

2 - SIB(接口的实现)

package calc;

import java.util.Date;
import javax.jws.WebService;

@WebService(endpointInterface = "calc.CalculatorServer")
public class CalculatorServerImpl implements CalculadoraServer {

    public float sum(float num1, float num2) {
        return num1 + num2;
    }

    public float subtraction(float num1, float num2) {
        return num1 - num2;
    }

...

}

3 - 负责发布它的班级

package calc;

import javax.xml.ws.Endpoint;

public class CalculadoraServerPublisher {

    public static void main(String[] args)
    {
        Endpoint.publish("http://127.0.0.1:9876/calc",
        new CalculadoraServerImpl());
    }
}

如果我运行第三个类并访问此地址:

http://127.0.0.1:9876/calc?wsdl

我将看到我的Web服务的WSDL。现在提出了一个问题:如果我可以访问它,它在我的计算机中的某个位置,但是......在哪里?我试图使用我所知道的每个Windows搜索引擎(我使用Windows 8.1),但没有一个能够找到它。它在哪里,毕竟?

1 个答案:

答案 0 :(得分:1)

在您的示例中,在访问地址时,在运行时按需生成WSDL协定。这就是为什么您无法在驱动器上的任何位置找到物理WSDL文件的原因。

如果仔细查看网址,则不会指向物理.wsdl文件:http://127.0.0.1:9876/calc?wsdl。它只是问号后面的查询字符串。

如果您需要更多信息,请参阅this tutorial