spring boot 创建web service及调用

365bet中文 2025-07-19 03:40:40 作者: admin 阅读: 7298
spring boot 创建web service及调用

项目结构:

多模块项目:分别为webservice的服务端和客户端:

项目地址:https://github.com/hankuikuide/webservice-demo

一. 服务端

1.POM文件

只需要添加spring boot自带的web service starter: spring-boot-starter-web-services和 wsdl4j

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">

4.0.0

org.springframework.boot

spring-boot-starter-parent

2.3.0.RELEASE

com.hkk

server

0.0.1-SNAPSHOT

server

Demo project for Spring Boot

1.8

org.springframework.boot

spring-boot-starter-web

org.springframework.boot

spring-boot-starter-web-services

wsdl4j

wsdl4j

1.6.3

org.springframework.boot

spring-boot-starter-test

test

org.junit.vintage

junit-vintage-engine

org.springframework.boot

spring-boot-maven-plugin

2.服务接口

package com.hkk.server.service;

import javax.jws.WebService;

@WebService

public interface BillService {

String getName(String name);

}

3.服务实现

package com.hkk.server.impl;

import com.hkk.server.service.BillService;

import javax.jws.WebService;

@WebService

public class BillServiceImpl implements BillService {

@Override

public String getName(String name) {

return "hello:" + name;

}

}

5. 发布webservice: 这里采用在main方法和中发布webservice:

package com.hkk.server;

import com.hkk.server.impl.BillServiceImpl;

import org.springframework.boot.SpringApplication;

import org.springframework.boot.autoconfigure.SpringBootApplication;

import javax.xml.ws.Endpoint;

@SpringBootApplication

public class ServerApplication {

public static void main(String[] args) {

SpringApplication.run(ServerApplication.class, args);

String url = "http://localhost:8082/webservice";

Endpoint.publish(url,new BillServiceImpl());

System.out.println("发布webService成功!");

}

}

注意端口号不能重复。

4.浏览wsdl文件

打开浏览器,输入地址:http://localhost:8082/webservice?wsdl, 显示如下页面,发布成功

二. 客户端

package com.hkk.client;

import org.apache.cxf.endpoint.Client;

import org.apache.cxf.jaxws.endpoint.dynamic.JaxWsDynamicClientFactory;

public class WebClient {

public static void main(String[] args) {

// 创建动态客户端

JaxWsDynamicClientFactory dcf = JaxWsDynamicClientFactory.newInstance();

Client client = dcf.createClient("http://localhost:8082/webservice/BillServiceImpl?wsdl");

Object[] objects = new Object[0];

try {

// invoke("方法名",参数1,参数2,参数3....);

objects = client.invoke("getName", "hkk");

System.out.println("返回数据:" + objects[0]);

} catch (java.lang.Exception e) {

e.printStackTrace();

}

}

}

1.POM文件:只需要添加:cxf-spring-boot-starter-jaxws

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">

4.0.0

org.springframework.boot

spring-boot-starter-parent

2.3.0.RELEASE

com.hkk

client

0.0.1-SNAPSHOT

client

Demo project for Spring Boot

1.8

org.springframework.boot

spring-boot-starter-web

org.apache.cxf

cxf-spring-boot-starter-jaxws

3.2.7

org.springframework.boot

spring-boot-starter-test

test

org.junit.vintage

junit-vintage-engine

org.springframework.boot

spring-boot-maven-plugin

2.client代码,调用webservice:

package com.hkk.client;

import org.apache.cxf.endpoint.Client;

import org.apache.cxf.jaxws.endpoint.dynamic.JaxWsDynamicClientFactory;

public class WebClient {

public static void main(String[] args) {

// 创建动态客户端

JaxWsDynamicClientFactory dcf = JaxWsDynamicClientFactory.newInstance();

Client client = dcf.createClient("http://localhost:8082/webservice/BillServiceImpl?wsdl");

Object[] objects = new Object[0];

try {

objects = client.invoke("getName", "maple");

System.out.println("返回数据:" + objects[0]);

} catch (java.lang.Exception e) {

e.printStackTrace();

}

}

}

相关推荐