如何在Spring Boot應(yīng)用程序中配置了兩個不同的SOAP Web服務(wù)端點
在Spring Boot應(yīng)用程序中配置了兩個不同的SOAP Web服務(wù)端點
新建一個CustomMessageDispatcherServlet類,以擴(kuò)展以下MessageDispatcherServlet類,
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實現(xiàn)
一、使用postman工具調(diào)用服務(wù)接口
成功啟動springboot應(yīng)用后,使用postman新建POST請求,地址: http://localhost:8080/soap/userManagement
正文body選擇raw,XML格式。
headers填入如下鍵值對:
其中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ā)送請求,返回了一個User類 。
至此,webservice SOAP服務(wù)發(fā)布測試成功。
二、使用客戶端測試接口
新建客戶端模塊,maven依賴和服務(wù)端相同。
實體類User、服務(wù)接口UserManagement.java和服務(wù)端保持一致。
客戶端結(jié)構(gòu)如下:
測試類如下:
@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(); } } }
啟動服務(wù)端后,運(yùn)行客戶端,返回了一個User類,說明客戶端測試成功。
到此這篇關(guān)于在Spring Boot應(yīng)用程序中配置了兩個不同的SOAP Web服務(wù)端點的文章就介紹到這了,更多相關(guān)Spring Boot應(yīng)用程序配置了兩個不同的SOAP Web服務(wù)端點內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
根據(jù)list中對象的屬性去重和排序小結(jié)(必看篇)
下面小編就為大家?guī)硪黄鶕?jù)list中對象的屬性去重和排序小結(jié)(必看篇)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-05-05ProtoStuff不支持BigDecimal序列化及反序列化詳解
這篇文章主要為大家介紹了ProtoStuff不支持BigDecimal序列化/反序列化,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-08-08一篇文章教你使用SpringBoot如何實現(xiàn)定時任務(wù)
這篇文章主要給大家介紹了關(guān)于如何利用一篇文章教你使用SpringBoot實現(xiàn)定時任務(wù)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-10-10SpringBoot讀取properties中文亂碼解決方案
本文主要介紹了在Spring?Boot中讀取帶有中文字符串的application.properties文件時遇到亂碼問題的解決方案,具有一定的參考價值,感興趣的可以了解一下2024-12-12Java讀取resources中資源文件路徑以及jar中文件無法讀取的解決
這篇文章主要介紹了Java讀取resources中資源文件路徑以及jar中文件無法讀取的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-05-05SpringBoot使用AOP+注解實現(xiàn)簡單的權(quán)限驗證的方法
這篇文章主要介紹了SpringBoot使用AOP+注解實現(xiàn)簡單的權(quán)限驗證的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-05-05