如何在Spring Boot應(yīng)用程序中配置了兩個(gè)不同的SOAP Web服務(wù)端點(diǎn)
在Spring Boot應(yīng)用程序中配置了兩個(gè)不同的SOAP Web服務(wù)端點(diǎn)
新建一個(gè)CustomMessageDispatcherServlet類(lèi),以擴(kuò)展以下MessageDispatcherServlet類(lèi),
import org.springframework.ws.transport.http.MessageDispatcherServlet;
import javax.servlet.http.HttpServletRequest;
public class CustomMessageDispatcherServlet extends MessageDispatcherServlet {
@Override
protected String transformWsdlLocation(HttpServletRequest request, String wsdlLocation) {
String requestUri = request.getRequestURI();
if (requestUri.contains("/WebservicesConnector/services/countries")) {
return "countries.wsdl";
} else if (requestUri.contains("/FinancingService/FinancingUpdate.asmx")) {
return "kinsai.wsdl";
}
return super.transformWsdlLocation(request, wsdlLocation);
}
}messageDispatcherServlet
@Bean
public ServletRegistrationBean<CustomMessageDispatcherServlet> messageDispatcherServlet() {
CustomMessageDispatcherServlet servlet = new CustomMessageDispatcherServlet();
servlet.setApplicationContext(applicationContext);
servlet.setTransformWsdlLocations(true);
return new ServletRegistrationBean<>(servlet, "/ws/*");
}擴(kuò)展:基于SpringBoot 的SOAP WebService實(shí)現(xiàn)
一、使用postman工具調(diào)用服務(wù)接口
成功啟動(dòng)springboot應(yīng)用后,使用postman新建POST請(qǐng)求,地址: http://localhost:8080/soap/userManagement
正文body選擇raw,XML格式。
headers填入如下鍵值對(duì):

其中xlms字段是 WSDL中的namespace字段。

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ser="http://service.tmy.example.org/">
<soapenv:Header/>
<soapenv:Body>
<ser:getUserByName>
<name>Jerry</name>
</ser:getUserByName>
</soapenv:Body>
</soapenv:Envelope>發(fā)送請(qǐng)求,返回了一個(gè)User類(lèi) 。
至此,webservice SOAP服務(wù)發(fā)布測(cè)試成功。

二、使用客戶(hù)端測(cè)試接口
新建客戶(hù)端模塊,maven依賴(lài)和服務(wù)端相同。
實(shí)體類(lèi)User、服務(wù)接口UserManagement.java和服務(wù)端保持一致。
客戶(hù)端結(jié)構(gòu)如下:

測(cè)試類(lèi)如下:
@SpringBootApplication
public class WebserviceClientApplication {
public static void main(String[] args) {
SpringApplication.run(WebserviceClientApplication.class, args);
JaxWsDynamicClientFactory dcflient=JaxWsDynamicClientFactory.newInstance();
Client client=dcflient.createClient("http://localhost:8080/soap/userManagement?wsdl");//http://localhost:8080/soap/userManagement
System.out.println("client= "+client);
try{
//namespace= http://service.tmy.example.org/
QName opname=new QName("http://service.tmy.example.org/","getUserByName");
Object[] objects=client.invoke(opname,"Jerry");//getUserByName
System.out.println("getUserByName 調(diào)用結(jié)果:"+objects[0].toString());
}catch (Exception e){
e.printStackTrace();
}
}
}啟動(dòng)服務(wù)端后,運(yùn)行客戶(hù)端,返回了一個(gè)User類(lèi),說(shuō)明客戶(hù)端測(cè)試成功。

到此這篇關(guān)于在Spring Boot應(yīng)用程序中配置了兩個(gè)不同的SOAP Web服務(wù)端點(diǎn)的文章就介紹到這了,更多相關(guān)Spring Boot應(yīng)用程序配置了兩個(gè)不同的SOAP Web服務(wù)端點(diǎn)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
根據(jù)list中對(duì)象的屬性去重和排序小結(jié)(必看篇)
下面小編就為大家?guī)?lái)一篇根據(jù)list中對(duì)象的屬性去重和排序小結(jié)(必看篇)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-05-05
ProtoStuff不支持BigDecimal序列化及反序列化詳解
這篇文章主要為大家介紹了ProtoStuff不支持BigDecimal序列化/反序列化,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-08-08
使用Filter實(shí)現(xiàn)登錄權(quán)限驗(yàn)證
這篇文章主要為大家詳細(xì)介紹了使用Filter實(shí)現(xiàn)登錄權(quán)限驗(yàn)證,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-10-10
一篇文章教你使用SpringBoot如何實(shí)現(xiàn)定時(shí)任務(wù)
這篇文章主要給大家介紹了關(guān)于如何利用一篇文章教你使用SpringBoot實(shí)現(xiàn)定時(shí)任務(wù)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-10-10
SpringBoot讀取properties中文亂碼解決方案
本文主要介紹了在Spring?Boot中讀取帶有中文字符串的application.properties文件時(shí)遇到亂碼問(wèn)題的解決方案,具有一定的參考價(jià)值,感興趣的可以了解一下2024-12-12
Java使用POI將多個(gè)Sheet合并為一個(gè)Sheet
這篇文章主要為大家詳細(xì)介紹了Java使用POI將多個(gè)Sheet合并為一個(gè)Sheet,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-04-04
Java讀取resources中資源文件路徑以及jar中文件無(wú)法讀取的解決
這篇文章主要介紹了Java讀取resources中資源文件路徑以及jar中文件無(wú)法讀取的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-05-05
SpringBoot使用AOP+注解實(shí)現(xiàn)簡(jiǎn)單的權(quán)限驗(yàn)證的方法
這篇文章主要介紹了SpringBoot使用AOP+注解實(shí)現(xiàn)簡(jiǎn)單的權(quán)限驗(yàn)證的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-05-05

