假设我的 Web 服务位于http://localhost:8080/foo/mywebservice
,而我的 WSDL 位于http://localhost:8080/foo/mywebservice?wsdl
。
http://localhost:8080/foo/mywebservice
是一个端点,即它与我的 Web 服务的 URI 相同,还是 SOAP 消息接收和解组?
你能给我解释一下它是什么,它的目的是什么吗?
这是一个较短的,希望更清晰的答案...是的,端点是您的服务可以由客户端应用程序访问的 URL。
更新的答案,从彼得在评论:
这是“旧术语”,直接使用WSDL2 "endepoint" definition(WSDL2 将“端口”转换为“端点”)。
也许您可以在本文档中找到答案:http://www.w3.org/TR/wsdl.html
WSDL 文档将服务定义为网络端点或端口的集合。在 WSDL 中,端点和消息的抽象定义与其具体的网络部署或数据格式绑定分开。这允许重用抽象定义:消息是正在交换的数据的抽象描述,端口类型是操作的抽象集合。特定端口类型的具体协议和数据格式规范构成了可重用绑定。因此,端口是通过将网络地址与可重用绑定相关联来定义的。
类型-使用某种类型系统(如 XSD)的数据类型定义的容器。
消息-被通信的数据的抽象的类型化定义。
操作-服务支持的操作的抽象描述。
端口类型-由一个或多个端点支持的一组抽象操作。
绑定-特定端口类型的具体协议和数据格式规范。
端口-定义为绑定和网络地址的组合的单个端点。
服务-相关端点的集合。
http://www.ehow.com/info_12212371_definition-service-endpoint.html端点是公开 HTML 文件或活动服务器页面的连接点。端点提供寻址 Web 服务端点所需的信息。端点提供用于定义消息寻址属性组或系列的参考或规范,并提供端到端消息特征,例如端点的源和目标的参考,以及允许对“独立”消息进行统一寻址的消息标识。端点可以是 PC,PDA 或销售点终端。
Web 服务端点是另一个程序用来与您的程序通信的 URL。要查看 WSDL,请将?wsdl
添加到 Web 服务端点 URL。
Web 服务用于程序到程序交互,而网页用于程序到人交互。
所以:端点是:http://www.blah.com/myproject/webservice/webmethod
因此,WSDL 是:http://www.blah.com/myproject/webservice/webmethod?wsdl
为了进一步扩展 WSDL 的元素,我总是发现将它们与代码进行比较很有帮助:
WSDL 有两个部分(物理和抽象)。
物理部分:
定义-变量-例如:myVar,x,y 等。
类型-数据类型-ex:int,double,String,myObjectType
操作-方法 / 函数-例如:myMethod(),myFunction()等。
消息-方法 / 函数输入参数 & amp;返回类型
ex:publicmyObjectTypemyMethod (StringmyVar)
Porttypes-类(即它们是操作的容器)-ex:MyClass {} 等。
抽象部分:
绑定-这些连接到端口类型并定义用于与此 Web 服务通信的所选协议。-协议是一种通信形式(因此文本 / SMS,电话与电子邮件等)。
服务-这列出了另一个程序可以找到您的 Web 服务的地址(即您的端点)。
在我过去的项目中,端点是一个相对属性。也就是说,它可能会或可能不会被附加到,但它总是包含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;
希望能有所启示。
本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处
评论列表(43条)