国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

SpringBoot 使用CXF 集成WebService

miracledan / 1058人閱讀

摘要:啟動后我們直接輸入項目地址指定的服務名會看到生成的。測試在這就不寫了,大家可以使用生成客戶端,或者直接使用發送格式數據進行請求。總結使用集成開發很簡單,不用在多帶帶的部署到外部上,這為我們熟悉開發的同學帶了很好的體驗。

1、寫在前面

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

之所以突然研究WebService是接到一個需求要去給 XX 項目做一個適配層,他們原有系統是使用webservice做的,所以……
那我們就來看看,這一個古老的技術如何和如今最流行的框架SpringBoot進行結合。

2、SpringBoot 集成WebService 2.1 導入依賴
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 來構建項目的,使用Maven一樣,添加以上jar依賴就可以了。

2.2 開發Webservice接口
/**
 * serviceName 服務名稱
 * 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     身份證號
     * @param sjh      手機號
     * @param macId    預定用戶
     * @param password 密碼
     * @return 查詢結果 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 實現類
/**
 * @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: 入參- wxid:{}, xm:{}, sfzh:{}, sjh:{}, macId:{}, pawd:{}", wxid, xm, sfzh,
                macId, password);

        return wxid + “:” + sfzh;
    }

實現類就很簡單了。和我們一般寫的沒啥區別,

2.4 發布
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() {
        //創建服務并指定服務名稱
        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();
    }

    /**
     * 注冊WebServiceDemoService接口到webservice服務
     *
     * @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;
    }

}

這個就簡單了, 我們在使用時可以直接copy過去就行。
最后就是啟動項目了。
啟動后我們直接輸入項目地址:http://localhost:8090/指定的服務名

會看到生成的ssdl。到這基本搭建就結束了。測試在這就不寫了, 大家可以使用wsdl生成客戶端,或者直接使用http發送xml格式數據進行請求。

3、總結

springboot使用CXF集成Webservice 開發很簡單,不用在多帶帶的部署到外部tomcat上, 這為我們熟悉springboot開發的同學帶了很好的體驗。

有想要完整實例的請看著 >> https://github.com/yuelicn/sp...
或者直接clone >> https://github.com/yuelicn/sp...

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/76156.html

相關文章

  • Java系統WebService:Spring與CXF集成

    摘要:我們再使用這樣的來查看這個服務具體的定義這個用以通過查看服務也就是我們開頭所說的用通用格式來描述的功能入參和返回值,使我們的調用者明白服務的使用方法具體詳情可以查看我們的這個服務的頁面。 WebService是什么呢?顧名思義,是Web系統提供的服務,其目的呢,往大了說:是系統實現多異構模塊協同合作,服務實現SOA(Services oriented Architecture面向服務的...

    waterc 評論0 收藏0
  • WebService就是這么簡單

    摘要:它使用方式,接收和響應外部系統的某種請求。回顧我們在學習基礎網絡編程章節已經知道了這么一個連接了。使用指定名稱的命名空間。名詞簡單對象訪問協議作為一個基于語言的協議用于有網上傳輸數據。以的根元素出現。代理這么一個概念就更加清晰了。 WebService介紹 首先我們來談一下為什么需要學習webService這樣的一個技術吧.... 問題一 如果我們的網站需要提供一個天氣預報這樣一個需求...

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

    摘要:支持相關規范和標準,包括同上。支持多種傳輸協議和協議綁定數據綁定。構建端還有其服務實現,接口使用注解,標明是一個遠程服務接口。然后編寫一個的啟動程序,并運行,我想你會成功的因為我看到了下圖是一種跨平臺的技術協議。 本博客 貓叔的博客,轉載請申明出處 學習系列 RPC框架是啥? RPC框架是啥之Java自帶RPC實現,RMI框架入門 Apache CXF一款WebService RP...

    SolomonXie 評論0 收藏0
  • 使用 Apache cxf 創建 WebService 服務端

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

    seasonley 評論0 收藏0
  • 使用 Apache cxf 實現 WebService 客戶端

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

    mingzhong 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<