成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

SpringBoot 使用CXF 集成WebService

miracledan / 1144人閱讀

摘要:?jiǎn)?dòng)后我們直接輸入項(xiàng)目地址指定的服務(wù)名會(huì)看到生成的。測(cè)試在這就不寫了,大家可以使用生成客戶端,或者直接使用發(fā)送格式數(shù)據(jù)進(jìn)行請(qǐng)求??偨Y(jié)使用集成開發(fā)很簡(jiǎn)單,不用在多帶帶的部署到外部上,這為我們熟悉開發(fā)的同學(xué)帶了很好的體驗(yàn)。

1、寫在前面

WebService 對(duì)我來說既熟悉又陌生,已經(jīng)將近六七年沒有看到過他了, 具體的介紹我就不多少了, 想了解的百度百科下說的很詳細(xì)。

之所以突然研究WebService是接到一個(gè)需求要去給 XX 項(xiàng)目做一個(gè)適配層,他們?cè)邢到y(tǒng)是使用webservice做的,所以……
那我們就來看看,這一個(gè)古老的技術(shù)如何和如今最流行的框架SpringBoot進(jìn)行結(jié)合。

2、SpringBoot 集成WebService 2.1 導(dǎo)入依賴
compile("org.springframework.boot:spring-boot-starter-web-services",
            "org.apache.cxf:cxf-spring-boot-starter-jaxws:3.2.5",
            "org.apache.cxf:cxf-rt-frontend-jaxws:3.1.6",
            "org.apache.cxf:cxf-rt-transports-http:3.1.6")

我是用Gradle 來構(gòu)建項(xiàng)目的,使用Maven一樣,添加以上jar依賴就可以了。

2.2 開發(fā)Webservice接口
/**
 * serviceName 服務(wù)名稱
 * targetNamesPace : 一般都是接口包倒序,也可以自定義
@javax.jws.WebService(serviceName = "gzcxfw_wx_webserviceService",
        targetNamespace = "http://36.101.208.59:8090/axis/services/bdcgzcxfw_wx")
public interface WebService {
    /**
     *
     * @param wxid     微信ID
     * @param xm       姓名
     * @param sfzh     身份證號(hào)
     * @param sjh      手機(jī)號(hào)
     * @param macId    預(yù)定用戶
     * @param password 密碼
     * @return 查詢結(jié)果 Base64字符串
     */
    @WebMethod(operationName = "gzcxfw_hlw_wxrz_Info_cs")
    @WebResult(name = "gzcxfw_hlw_wxrz_Info_csReturn")
    String gzcxfwHlwWxrzInfoCs(@WebParam(name = "WXID", targetNamespace = "http://36.101.208.59:8090/axis/services/bdcgzcxfw_wx") String wxid, @WebParam(name = "XM") String xm,
                               @WebParam(name = "SFZH", targetNamespace = "http://36.101.208.59:8090/axis/services/bdcgzcxfw_wx") String sfzh, @WebParam(name = "SJH") String sjh,
                               @WebParam(name = "mac_id", targetNamespace = "http://36.101.208.59:8090/axis/services/bdcgzcxfw_wx") String macId, @WebParam(name = "password") String password
    );
2.3 實(shí)現(xiàn)類
/**
 * @author yueli
 * @date 2019-08-05 19:17
 */
@javax.jws.WebService(serviceName = "gzcxfw_wx_webserviceService",
        targetNamespace = "http://36.101.208.59:8090/axis/services/bdcgzcxfw_wx")
public class WebServiceImpl implements WebService {

    private static Logger logger = LoggerFactory.getLogger(CatalogInfoImpl.class);


    @Override
    public String gzcxfwHlwWxrzInfoCs(String wxid, String xm, String sfzh, String sjh, String macId, String password) {
        logger.info("gzcxfwHlwWxrzInfoCs: 入?yún)? wxid:{}, xm:{}, sfzh:{}, sjh:{}, macId:{}, pawd:{}", wxid, xm, sfzh,
                macId, password);

        return wxid + “:” + sfzh;
    }

實(shí)現(xiàn)類就很簡(jiǎn)單了。和我們一般寫的沒啥區(qū)別,

2.4 發(fā)布
package com.tusdao.base.configuration;

import com.tusdao.TusdaoWebserviceApplication;
import com.tusdao.webservice.service.WebService;
import com.tusdao.webservice.service.impl.WebServiceImpl;
import org.apache.cxf.Bus;
import org.apache.cxf.bus.spring.SpringBus;
import org.apache.cxf.jaxws.EndpointImpl;
import org.apache.cxf.transport.servlet.CXFServlet;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;

import javax.xml.ws.Endpoint;


/**
 * @author yueli
 * @date 2019-08-05 19:24
 */
@Configuration
@ComponentScan(basePackageClasses = TusdaoWebserviceApplication.class)
public class CxfConfig {
    @SuppressWarnings("all")
    @Bean(name = "cxfServletRegistration")
    public ServletRegistrationBean dispatcherServlet() {
        //創(chuàng)建服務(wù)并指定服務(wù)名稱
        return new ServletRegistrationBean(new CXFServlet(), "/axis/services/*");
    }

    @Bean(name = Bus.DEFAULT_BUS_ID)
    public SpringBus springBus() {
        return new SpringBus();
    }


    @Bean
    public WebService webService() {

        return new WebServiceImpl();
    }

    /**
     * 注冊(cè)WebServiceDemoService接口到webservice服務(wù)
     *
     * @return
     */
    @Bean
    public Endpoint endpoint() {
        EndpointImpl endpoint = new EndpointImpl(springBus(), webService());
        endpoint.publish("/bdcgzcxfw_wx");
        endpoint.getInInterceptors().add(new ServerNameSpaceInterceptor());
        //endpoint.getInInterceptors().add(new InInterceptor());
        return endpoint;
    }

}

這個(gè)就簡(jiǎn)單了, 我們?cè)谑褂脮r(shí)可以直接copy過去就行。
最后就是啟動(dòng)項(xiàng)目了。
啟動(dòng)后我們直接輸入項(xiàng)目地址:http://localhost:8090/指定的服務(wù)名

會(huì)看到生成的ssdl。到這基本搭建就結(jié)束了。測(cè)試在這就不寫了, 大家可以使用wsdl生成客戶端,或者直接使用http發(fā)送xml格式數(shù)據(jù)進(jìn)行請(qǐng)求。

3、總結(jié)

springboot使用CXF集成Webservice 開發(fā)很簡(jiǎn)單,不用在多帶帶的部署到外部tomcat上, 這為我們熟悉springboot開發(fā)的同學(xué)帶了很好的體驗(yàn)。

有想要完整實(shí)例的請(qǐng)看著 >> https://github.com/yuelicn/sp...
或者直接clone >> https://github.com/yuelicn/sp...

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/76156.html

相關(guān)文章

  • Java系統(tǒng)WebService:Spring與CXF集成

    摘要:我們?cè)偈褂眠@樣的來查看這個(gè)服務(wù)具體的定義這個(gè)用以通過查看服務(wù)也就是我們開頭所說的用通用格式來描述的功能入?yún)⒑头祷刂担刮覀兊恼{(diào)用者明白服務(wù)的使用方法具體詳情可以查看我們的這個(gè)服務(wù)的頁(yè)面。 WebService是什么呢?顧名思義,是Web系統(tǒng)提供的服務(wù),其目的呢,往大了說:是系統(tǒng)實(shí)現(xiàn)多異構(gòu)模塊協(xié)同合作,服務(wù)實(shí)現(xiàn)SOA(Services oriented Architecture面向服務(wù)的...

    waterc 評(píng)論0 收藏0
  • WebService就是這么簡(jiǎn)單

    摘要:它使用方式,接收和響應(yīng)外部系統(tǒng)的某種請(qǐng)求?;仡櫸覀?cè)趯W(xué)習(xí)基礎(chǔ)網(wǎng)絡(luò)編程章節(jié)已經(jīng)知道了這么一個(gè)連接了。使用指定名稱的命名空間。名詞簡(jiǎn)單對(duì)象訪問協(xié)議作為一個(gè)基于語言的協(xié)議用于有網(wǎng)上傳輸數(shù)據(jù)。以的根元素出現(xiàn)。代理這么一個(gè)概念就更加清晰了。 WebService介紹 首先我們來談一下為什么需要學(xué)習(xí)webService這樣的一個(gè)技術(shù)吧.... 問題一 如果我們的網(wǎng)站需要提供一個(gè)天氣預(yù)報(bào)這樣一個(gè)需求...

    SwordFly 評(píng)論0 收藏0
  • RPC框架是啥之Apache CXF一款WebService RPC框架入門教程

    摘要:支持相關(guān)規(guī)范和標(biāo)準(zhǔn),包括同上。支持多種傳輸協(xié)議和協(xié)議綁定數(shù)據(jù)綁定。構(gòu)建端還有其服務(wù)實(shí)現(xiàn),接口使用注解,標(biāo)明是一個(gè)遠(yuǎn)程服務(wù)接口。然后編寫一個(gè)的啟動(dòng)程序,并運(yùn)行,我想你會(huì)成功的因?yàn)槲铱吹搅讼聢D是一種跨平臺(tái)的技術(shù)協(xié)議。 本博客 貓叔的博客,轉(zhuǎn)載請(qǐng)申明出處 學(xué)習(xí)系列 RPC框架是啥? RPC框架是啥之Java自帶RPC實(shí)現(xiàn),RMI框架入門 Apache CXF一款WebService RP...

    SolomonXie 評(píng)論0 收藏0
  • 使用 Apache cxf 創(chuàng)建 WebService 服務(wù)端

    摘要:本地服務(wù)地址具體端口跟配置有關(guān)配置添加依賴包在增加的配置和的配置編寫服務(wù)在增加的配置,記得要的配置就能看到接口說明可以直接運(yùn)行的 ws-server-demo 本地服務(wù)地址(具體端口跟tomcat配置有關(guān)) http://localhost:8280/services/HelloWorld?wsdl spring + cfx 配置 maven 添加依賴包 org.apache.c...

    seasonley 評(píng)論0 收藏0
  • 使用 Apache cxf 實(shí)現(xiàn) WebService 客戶端

    摘要:證書有兩種形式指定路徑有三種形式的插件可以指定參數(shù)來解決一下常見的問題下的可以選擇所需的命令參數(shù)使用參考添加解決中命名沖突添加指定自動(dòng)生成的包名 ws-client-demo 客戶端調(diào)用遠(yuǎn)程服務(wù) http://localhost:8280/services/HelloWorld?wsdl spring + cfx 配置 maven 添加依賴包 org.apache.cxf c...

    mingzhong 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<