基于 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>