http://localhost:8080/foo/mywebservice
,WSDL位于http://localhost:8080/foo/mywebservice?wsdl
。
http://localhost:8080/foo/mywebservice
是一个端点吗?即它是否与我的Web服务的URI相同或者是接收和取消打包SOAP消息的地方?请您解释一下它是什么以及其目的是什么。
http://localhost:8080/foo/mywebservice
,WSDL位于http://localhost:8080/foo/mywebservice?wsdl
。
http://localhost:8080/foo/mywebservice
是一个端点吗?即它是否与我的Web服务的URI相同或者是接收和取消打包SOAP消息的地方?以下是更简明易懂的回答:
是的,端点是客户端应用程序可以访问您的服务的URL。同一个Web服务可以有多个端点,例如为了使用不同的协议而使其可用。
从评论中的Peter更新的答案如下:
这是"旧术语",直接使用WSDL2 "endpoint"定义(WSDL2将“port”翻译为“endpoint”)。
也许您能在此文档中找到答案:http://www.w3.org/TR/wsdl.html
WSDL文档将服务定义为网络端点或端口的集合。在WSDL中,端点和消息的抽象定义与它们的具体网络部署或数据格式绑定分离。这允许重用抽象定义:消息是交换的数据的抽象描述,而端口类型是操作的抽象集合。特定端口类型的具体协议和数据格式规范构成可重复使用的绑定。通过将网络地址与可重用的绑定相关联来定义端口,并且一组端口定义了一个服务。因此,WSDL文档在网络服务定义中使用以下元素:
- Types– 使用某些类型系统(例如XSD)的数据类型定义容器。
- Message– 传递的数据的抽象和类型定义。
- Operation– 服务支持的操作的抽象描述。
- Port Type–由一个或多个端点支持的操作的抽象集合。
- Binding– 特定端口类型的具体协议和数据格式规范。
- Port– 使用绑定和网络地址的组合定义的单个端点。
- Service– 相关端点的集合。
http://www.ehow.com/info_12212371_definition-service-endpoint.html
端点是暴露 HTML 文件或活动服务器页面的连接点。端点提供了寻址 Web 服务端点所需的信息。端点提供了一个引用或规范,用于定义一组或系列的消息寻址属性和给予端到端消息特性,例如端点来源和目标的参考以及允许 "独立" 消息的统一寻址的消息标识。端点可以是个人电脑、PDA 或销售终端。
?wsdl
。http://www.blah.com/myproject/webservice/webmethod
所以,
WSDL 是:http://www.blah.com/myproject/webservice/webmethod?wsdl
public myObjectType myMethod(String myVar)
端口类型 - 类(即它们是操作的容器) - 如:MyClass{} 等。
抽象部分:
绑定 - 它们连接到端口类型,并定义用于与此 Web 服务通信的所选协议。
- 协议是一种通信形式(文字/SMS、电话 vs. 电子邮件等)。在我之前参与的项目中,终端点是一个相对属性。也就是说,它可能已经被附加,但它始终包含 protocol://host:port/partOfThePath
。
如果调用的服务有一个动态部分(例如 ?param=dynamicValue
),那么该部分将添加到终端点中。但很多时候,终端点可以直接使用而不需要进行修改。
重要的是要理解终端点是什么以及它如何起作用。例如,传递存储在终端点中的信息的另一种方法是将终端点的不同部分存储在单独的属性中。例如:
hostForServiceA=someIp
portForServiceA=8080
pathForServiceA=/some/service/path
hostForServiceB=someIp
portForServiceB=8080
pathForServiceB=/some/service/path
或者如果多个服务共享相同的主机和端口:
host=someIp
port=8080
pathForServiceA=/some/service/path
pathForServiceB=/some/service/path
在这些情况下,您的代码需要构建完整的URL,如下所示:String url = "http://" + host + ":" + port + pathForServiceA + "?" + dynamicParam + "=" + dynamicValue;
相反,在合同中,这可以被存储为一个终点
serviceAEndpoint=http://host:port/some/service/path?dynamicParam=
是的,很多时候我们将终点存储为包括'='在内的内容。这导致了像下面这样的代码:
String url = serviceAEndpoint + dynamicValue;
希望这能给你带来一些启示。
Reference: https://smartbear.com/learn/performance-monitoring/api-endpoints/
端点是Web服务的URL。而且,端点也是分布式API。
简单对象访问协议(SOAP)端点是一个URL。它标识内置HTTP服务上的位置,其中Web服务侦听器侦听传入请求。