最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SpringBoot調(diào)用SOAP接口全流程(含多服務(wù)配置)

 更新時(shí)間:2025年06月06日 10:32:57   作者:Jamie Chyi  
本文主要介紹了SpringBoot調(diào)用SOAP接口全流程(含多服務(wù)配置),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

在現(xiàn)代系統(tǒng)中,雖然 REST 接口廣泛使用,但一些傳統(tǒng)平臺仍使用 SOAP 協(xié)議。本文將手把手教你如何在 Spring Boot 項(xiàng)目中優(yōu)雅集成并調(diào)用 SOAP 接口,支持多個(gè)服務(wù)配置、注解調(diào)用、自定義參數(shù)傳遞等。

?? 1. 引入 Maven 依賴

		<dependency>
			<groupId>org.springframework.ws</groupId>
			<artifactId>spring-ws-core</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-oxm</artifactId>
		</dependency>

?? 2. 使用 wsimport 命令生成客戶端代碼

打開終端,執(zhí)行以下命令(替換為實(shí)際的 WSDL 地址):

wsimport -keep -p com.example.soapclient https://xxx.cn/tp_core/xxx/MsgWebService?wsdl

?? 3. 編寫配置類(支持多服務(wù))

@Configuration
public class SoapClientConfig {
    @Bean
    public Jaxb2Marshaller marshaller() {
        Jaxb2Marshaller marshaller = new Jaxb2Marshaller();
        // 設(shè)置生成的SOAP類所在的包名,這里替換成實(shí)際的包路徑
        marshaller.setContextPath("com.ly.cloud.common.soap");
        return marshaller;
    }

    @Bean
    public WebServiceTemplate webServiceTemplate(Jaxb2Marshaller marshaller) {
        WebServiceTemplate webServiceTemplate = new WebServiceTemplate();
        webServiceTemplate.setDefaultUri("https://xxx/xxx/service/MsgWebService");
        // 配置 marshaller 和 unmarshaller
        webServiceTemplate.setMarshaller(marshaller);
        webServiceTemplate.setUnmarshaller(marshaller);
        return webServiceTemplate;
    }
}

?? 4. 編寫調(diào)用 Service(JSON 作為入?yún)ⅲ?/h2>

這里只需要傳一個(gè)String類型的json入?yún)⒆址?,即可拿到調(diào)用結(jié)果。實(shí)際場景可以結(jié)合Controller實(shí)現(xiàn)

@Service
public class MySoapService{
    @Autowired
    private WebServiceTemplate webServiceTemplate;

    public String callSoapService(String message) {
        Map<String,Object> map = new HashMap<>();
        map.put("OTHER_PK_ID", "");
        String jsonString = JSONObject.toJSONString(map);
        // 入?yún)son字符串
        AddMessage addMessage = new AddMessage();
        addMessage.setIn0(jsonString);
        System.out.println(jsonString);
        AddMessageResponse response = (AddMessageResponse) webServiceTemplate.marshalSendAndReceive(addMessage);
        // 調(diào)用結(jié)果
        return response.getOut();
    }
    
}

?? 5. 多服務(wù)擴(kuò)展配置(可選)

如果你需要調(diào)用多個(gè) SOAP 服務(wù)接口,可以配置多個(gè) WebServiceTemplate 和 Marshaller

@Configuration
public class SoapClientConfig {
    @Bean
    public Jaxb2Marshaller marshaller() {
        Jaxb2Marshaller marshaller = new Jaxb2Marshaller();
        // 設(shè)置生成的SOAP類所在的包名,這里替換成實(shí)際的包路徑
        marshaller.setContextPath("com.ly.cloud.common.soap");
        return marshaller;
    }

    @Bean
    public Jaxb2Marshaller marshaller2() {
        Jaxb2Marshaller marshaller = new Jaxb2Marshaller();
        // 配置第二個(gè)包路徑 com.ly.cloud.common.soap.app,對應(yīng)第二個(gè) namespace
        marshaller.setContextPath("com.ly.cloud.common.soap.app");
        return marshaller;
    }
    @Bean
    public Jaxb2Marshaller marshaller3() {
        Jaxb2Marshaller marshaller = new Jaxb2Marshaller();
        // 配置第三個(gè)個(gè)包路徑 com.ly.cloud.common.soap.email,對應(yīng)第二個(gè) namespace
        marshaller.setContextPath("com.ly.cloud.common.soap.email");
        return marshaller;
    }

    @Bean
    public WebServiceTemplate webServiceTemplate(Jaxb2Marshaller marshaller) {
        WebServiceTemplate webServiceTemplate = new WebServiceTemplate();
        webServiceTemplate.setDefaultUri("https://xxx/tp_core/service/MsgWebService");
        // 配置 marshaller 和 unmarshaller
        webServiceTemplate.setMarshaller(marshaller);
        webServiceTemplate.setUnmarshaller(marshaller);
        return webServiceTemplate;
    }

    @Bean
    public WebServiceTemplate webServiceTemplate2(Jaxb2Marshaller marshaller2) {
        WebServiceTemplate webServiceTemplate = new WebServiceTemplate();
        webServiceTemplate.setDefaultUri("https://xxx/mp/service/AppService");
        // 配置 marshaller 和 unmarshaller
        webServiceTemplate.setMarshaller(marshaller2);
        webServiceTemplate.setUnmarshaller(marshaller2);
        return webServiceTemplate;
    }
    @Bean
    public WebServiceTemplate webServiceTemplate3(Jaxb2Marshaller marshaller3) {
        WebServiceTemplate webServiceTemplate = new WebServiceTemplate();
        webServiceTemplate.setDefaultUri("https://xxx/mp/service/EmailService");
        // 配置 marshaller 和 unmarshaller
        webServiceTemplate.setMarshaller(marshaller3);
        webServiceTemplate.setUnmarshaller(marshaller3);
        return webServiceTemplate;
    }
}

使用的過程中,分別注入對應(yīng)的即可。

? 總結(jié)

本文完整展示了 Spring Boot 如何調(diào)用 SOAP 接口的全過程,涵蓋:

  • wsimport 生成代碼

  • Spring 配置與依賴注入

  • JSON 參數(shù)封裝與發(fā)送

  • 多服務(wù)并存配置

SOAP 雖老,實(shí)戰(zhàn)依舊有用

到此這篇關(guān)于SpringBoot調(diào)用SOAP接口全流程(含多服務(wù)配置)的文章就介紹到這了,更多相關(guān)SpringBoot調(diào)用SOAP接口內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論

澄江县| 雷山县| 鸡泽县| 舞阳县| 仙桃市| 隆德县| 鄂托克旗| 朝阳市| 通化市| 安新县| 灵台县| 渝北区| 苍山县| 中阳县| 桓仁| 民和| 绵竹市| 广丰县| 乌鲁木齐县| 平乐县| 中阳县| 射洪县| 海林市| 水富县| 无棣县| 漠河县| 兴仁县| 稷山县| 确山县| 吉木乃县| 商洛市| 嘉荫县| 广汉市| 临洮县| 萍乡市| 泸州市| 房产| 虹口区| 正安县| 河北省| 阿城市|