基于 XML 用于交換信息的協(xié)議蟀给,有不同的產(chǎn)品實(shí)現(xiàn)。
特點(diǎn):
- 易用:基于 XML 并封裝成了基于 HTTP 協(xié)議
- 跨語(yǔ)言:任何語(yǔ)言锦亦,只要能發(fā)送格式正確的 SOAP 請(qǐng)求
- 跨平臺(tái)
JSR224
基于 SOAP 的 Web Service 規(guī)范。
JAX-WS
基于 XML 的 Web Service 的一組 Java API,包括 SOAP阳准。
在 JAX-WS 中,一個(gè)遠(yuǎn)程調(diào)用可轉(zhuǎn)換為一個(gè)基于 XML 的 SOAP 請(qǐng)求馏臭。
開(kāi)發(fā)者不需要手動(dòng)編寫(xiě)代碼來(lái)生成和處理 SOAP 消息野蝇。
Spring 中集成 SOAP
通過(guò) @WebService
注解使得一個(gè) 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括儒,提供計(jì)算接口 -->
<bean id="serviceEndPoint_Calc" class="...soap.JAXWSServiceEndpoint">
<!-- 引用之前通過(guò) @WebService 注解標(biāo)識(shí)的 CalcBean -->
<property name="serviceBean" ref="CalcBean" />
</bean>
<!-- 基于 TCP -->
<bean name="tcpTransport" class="...TCPServerTransport">
<!-- 配置 host 和 port -->
<property name="hostPort" ...
<!-- serviceEndPoints绕沈,可以有多個(gè) Endpoint -->
<property name="serviceEndPoints">
<list>
<ref bean="serviceEndPoint_Calc" />
</list>
</property>
</bean>