SpringBoot WebService服務(wù)端&客戶端使用案例教程
更新時(shí)間:2023年10月20日 10:21:28 作者:知識(shí)淺談
這篇文章主要介紹了SpringBoot WebService服務(wù)端&客戶端使用案例教程,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
服務(wù)端:
依賴
<!-- webservice相關(guān)依賴-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web-services</artifactId>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-frontend-jaxws</artifactId>
<version>3.2.0</version>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-transports-http</artifactId>
<version>3.2.0</version>
</dependency>服務(wù)接口
package com.example.demo.service;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebResult;
import javax.jws.WebService;
/**
* @author: Yinlei
* Package: com.example.demo.service
* @date: 2023-10-18 8:40
* @Description: webservice測(cè)試
* @version: 1.0
*/
@WebService(name = "HelloWebService",
targetNamespace = "http://helloWebService.service.demo.example.com")
public interface HelloWebService {
@WebMethod
@WebResult(name = "resultName")
String get(@WebParam(name = "name") String name);
}服務(wù)接口實(shí)現(xiàn)類
package com.example.demo.service.Impl;
import com.example.demo.service.HelloWebService;
import org.springframework.stereotype.Service;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebResult;
import javax.jws.WebService;
/**
* @author: Yinlei
* Package: com.example.demo.service.Impl
* @date: 2023-10-18 8:46
* @Description:
* @version: 1.0
*/
@Service
@WebService(name = "HelloWebService",
targetNamespace = "http://helloWebService.service.demo.example.com", //命名空間,一般是對(duì)應(yīng)的路徑反過(guò)來(lái)
endpointInterface = "com.example.demo.service.HelloWebService") //實(shí)現(xiàn)接口的地址
public class HelloWebServiceImpl implements HelloWebService {
@Override
public String get( String name) {
return name;
}
}cxf配置類
package com.example.demo.config;
import com.example.demo.service.HelloWebService;
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.beans.factory.annotation.Autowired;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import javax.xml.ws.Endpoint;
/**
* @author: Yinlei
* Package: com.example.demo.config
* @date: 2023-10-18 10:09
* @Description: Cxf配置類
* @version: 1.0
*/
@Configuration
public class CxfConfig {
@Autowired
private HelloWebService helloWebService;
@Bean
public ServletRegistrationBean disServlet(){
return new ServletRegistrationBean(new CXFServlet(),"/webService/*"); //webservice下的請(qǐng)求將有CXFServlet處理
}
@Bean(name = Bus.DEFAULT_BUS_ID)
public SpringBus springBus(){
return new SpringBus();
}
@Bean
public Endpoint endpoint(){
EndpointImpl endpoint = new EndpointImpl(springBus(), helloWebService);
endpoint.publish("/helloWebservice");
return endpoint;
}
}客戶端
@GetMapping("/get1")
public String get1() throws MalformedURLException {
//創(chuàng)建WSDL文件的URL,這個(gè)參數(shù)為暴露webervice的網(wǎng)址
URL wsdlLocation = new URL("http://localhost:9000/webService/helloWebservice?wsdl");
//創(chuàng)建服務(wù)名稱:第一個(gè)參數(shù)為命名空間地址,第二個(gè)參數(shù) 為本地部分的命名 HelloWebServiceImplService 這個(gè)是對(duì)應(yīng)的實(shí)現(xiàn)類名加上Service
QName serviceName = new QName("http://helloWebService.service.demo.example.com", "HelloWebServiceImplService");
Service service = Service.create(wsdlLocation, serviceName);
//獲取服務(wù)實(shí)現(xiàn)類 參數(shù)為對(duì)應(yīng)的服務(wù)接口.class
HelloWebService port = service.getPort(HelloWebService.class);
//調(diào)用方法
String asd = port.get("asd");
return asd;
}到此這篇關(guān)于SpringBoot WebService服務(wù)端&客戶端使用教程的文章就介紹到這了,更多相關(guān)SpringBoot WebService服務(wù)端內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
WebSocket實(shí)現(xiàn)聊天室業(yè)務(wù)
這篇文章主要為大家詳細(xì)介紹了WebSocket實(shí)現(xiàn)聊天室業(yè)務(wù),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-08-08
SpringBoot整合BCrypt實(shí)現(xiàn)密碼加密
這篇文章主要為大家詳細(xì)介紹了SpringBoot整合BCrypt進(jìn)行密碼加密,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-11-11
JeecgBoot代碼生成器自定義請(qǐng)求接口實(shí)例
文章介紹了如何在使用代碼生成器生成的頁(yè)面中添加啟用/停用功能,通過(guò)修改List.vue頁(yè)面并添加必要的請(qǐng)求頭token來(lái)解決身份認(rèn)證失敗的問(wèn)題,同時(shí),還講述了如何在菜單管理、角色管理中進(jìn)行權(quán)限配置,以確保按鈕功能生效2026-01-01
SpringBoot發(fā)送異步郵件流程與實(shí)現(xiàn)詳解
這篇文章主要介紹了SpringBoot發(fā)送異步郵件流程與實(shí)現(xiàn)詳解,Servlet階段郵件發(fā)送非常的復(fù)雜,如果現(xiàn)代化的Java開(kāi)發(fā)是那個(gè)樣子該有多糟糕,現(xiàn)在SpringBoot中集成好了郵件發(fā)送的東西,而且操作十分簡(jiǎn)單容易上手,需要的朋友可以參考下2024-01-01

