基于 XML 用于交换信息的协议,有不同的产品实现。
特点:
- 易用:基于 XML 并封装成了基于 HTTP 协议
- 跨语言:任何语言,只要能发送格式正确的 SOAP 请求
- 跨平台
JSR224
基于 SOAP 的 Web Service 规范。
JAX-WS
基于 XML 的 Web Service 的一组 Java API,包括 SOAP。
在 JAX-WS 中,一个远程调用可转换为一个基于 XML 的 SOAP 请求。
开发者不需要手动编写代码来生成和处理 SOAP 消息。
Spring 中集成 SOAP
通过 @WebService
注解使得一个 Java Bean 成为提供 SOAP 接口的 Service Bean。
@WebService(targetNamespace="...", name="CalcBean")
public class Calculation {
public int add(int a, int b) {
return a + b;
}
}
Bean 的配置:
<!-- 配置 JAXWS 的 Endpoint,提供计算接口 -->
<bean id="serviceEndPoint_Calc" class="...soap.JAXWSServiceEndpoint">
<!-- 引用之前通过 @WebService 注解标识的 CalcBean -->
<property name="serviceBean" ref="CalcBean" />
</bean>
<!-- 基于 TCP -->
<bean name="tcpTransport" class="...TCPServerTransport">
<!-- 配置 host 和 port -->
<property name="hostPort" ...
<!-- serviceEndPoints,可以有多个 Endpoint -->
<property name="serviceEndPoints">
<list>
<ref bean="serviceEndPoint_Calc" />
</list>
</property>
</bean>