我使用Apache CXF将大约10个java类公开为Web服务。
我使用CXF,Axis和.NET生成了客户端。
在Axis和CXF中生成“服务”或“定位器”。 通过这项服务,您可以获得“港口”。 “端口”用于对Web服务公开的方法进行单独调用。
在.NET中,“服务”直接公开对Web服务的调用。
有人可以解释端口,服务,定位器和端点在Web服务方面的区别吗?
轴:
PatientServiceImplServiceLocator locator =
new PatientServiceImplServiceLocator();
PatientService service = locator.getPatientServiceImplPort();
CXF:
PatientServiceImplService locator = new PatientServiceImplService();
PatientService service = locator.getPatientServiceImplPort();
达网络:
PatientServiceImplService service = new PatientServiceImplService();
答案 0 :(得分:32)
我根据Kevin Kenny的回答找到了这些信息,但我想我会把它发布给其他人。
WSDL文档将服务定义为网络端点或端口的集合。在WSDL中,端点和消息的抽象定义与其具体的网络部署或数据格式绑定分开。这允许重用抽象定义:消息,它们是被交换数据的抽象描述,以及作为抽象操作集合的端口类型。特定端口类型的具体协议和数据格式规范构成可重用绑定。通过将网络地址与可重用绑定相关联来定义端口,并且端口集合定义服务。因此,WSDL文档在网络服务的定义中使用以下元素:
答案 1 :(得分:6)
我会跳到http://www.w3.org/TR/wsdl.html我认为很好地解释了端口,服务和端点。定位器是一种特定于实现的机制,某些WS堆栈用它来提供对服务端点的访问。
答案 2 :(得分:4)
我想补充说<port>
和<endpoint>
服务于同一目的,但WSDL 1.1使用port
,WSDL 2.0使用endpoint
。
答案 3 :(得分:1)
正如您已经提到的,这些术语在不同的堆栈中意味着不同的东西 - 对于Web服务没有一个正确的通用答案。