簡體   English   中英

使用Endpoint類發布Web服務時,WSDL在哪里創建?

[英]When using an Endpoint class to publish a Web Service, where is the WSDL created?

例如:我的Web服務中有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),但沒有一個能夠找到它。 畢竟在哪里?

在您的樣本中,當訪問地址時,WSDL合同是在運行時按需生成的。 這就是為什么在驅動器上的任何位置都找不到物理WSDL文件的原因。

如果仔細查看該URL,它不會指向物理.wsdl文件: http://127.0.0.1:9876/calc?wsdl : http://127.0.0.1:9876/calc?wsdl :9876/calc? http://127.0.0.1:9876/calc?wsdl 它只是問號后面的查詢字符串。

如果需要更多信息,請參閱本教程

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM