我是Java SOAP Web服务的新手。我的问题是 -
1)我如何用SOAP公开和端点,是否总是需要WSDL定义? WSDL的内容是什么?
2)我的网络服务如何知道除了字节数组之外还必须知道它?在REST中,使用Multipart
3)编写SOAP服务器configurations
的过程是什么?对于使用SPRING的REST,它声明servletTransport Beans
中的serverContext.xml
和web.xml
中的REST web service
表示' servlet映射'
4)另外,我需要知道无法使用SO
5)在REST and SOAP are not mutually exclusive. A RESTful architecture may use HTTP or SOAP as the underlying communication protocol
中,我读了{{1}}。怎么样?
答案 0 :(得分:1)
1)使用SOAP的端点不会要求 WSDL进行操作,但它几乎总是存在,因为它与Web服务紧密耦合。 WSDL包含服务外观的描述,因此基本上有哪些输入和输出参数,它们的类型等。实际上暴露端点通常是服务器的任务,因此它将取决于您正在运行的软件。
2)在SOAP中你也可以使用Multipart(google for XOP + MTOM),但除非你在谈论真正大文件,否则你可能会使用base64编码的字符串来实现byte []。根据框架,这不是你真正关心的问题,因为框架会看到你正在尝试获取byte []并自动生成base64字符串。
3)不了解spring,但对于Java EE,规范是JAX-WS。它几乎和JAX-RS(休息)服务一样简单,但还有一些额外的事情要记住。
4)REST比SOAP更容易,但SOAP具有存在WSDL的巨大优势。这允许客户端生成,从而减少开发时间。 REST有WADL,但还没有。出于这个原因,SOAP实际上几乎是业务级Web服务的事实标准。
5)REST始终是HTTP,因为它基本上重用了整个HTTP" stack" (例如http认证等)。然而,SOAP可以在任何东西上运行(例如JMS,HTTP,......),但实际上人们几乎只在HTTP上使用它。然而,因为它不能依赖固定的协议,它已经重新发明了每一个轮子。 REST重用HTTP身份验证,而SOAP则遵循规范(WS-Security)。有许多WS- *标准。