gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 08:15:12 24 4
gpt4 key购买 nike

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

1 - SEI(Web 服务的接口(interface)):

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(接口(interface)的实现)

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。它只是问号后面的查询字符串。

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

关于java - 当使用 Endpoint 类发布 Web Service 时,WSDL 在哪里创建?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29756055/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com