网站首页 > 教程文章 正文
Java知识点整理正在进行中,关注我,持续给您带来简单,实用的Java编程技巧。
网络服务接口开发分为服务端与客户端,本文已SpringBoot框架为例,先介绍下服务端的开发。
开发服务端
步骤:
- 引入依赖
- 写实体类
- 写服务接口和实现类
- 写配置类
pom文件引入依赖:
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-spring-boot-starter-jaxws</artifactId>
<version>3.2.5</version>
</dependency>
<!-- 不引入会报错 报接口未实现 -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>6.0.18.Final</version>
</dependency>
实体类User
package com.bbzd.mws.model;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 为开发方便,引用了lombok标签
* @date 2022/10/8 - 17:34
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class User {
private String name;
private Integer age;
}
service接口
package com.bbzd.mws.service;
import com.bbzd.mws.model.User;
import javax.jws.WebService;
/**
*
* @date 2022/10/8 - 17:37
*/
@WebService(targetNamespace = "wsdl.bbzdmws.com",name = "uerPortType")
public interface UserService {
User getUserName(String userName);
}
service接口实现类
package com.bbzd.mws.service.impl;
import com.bbzd.mws.model.User;
import com.bbzd.mws.service.UserService;
import javax.jws.WebService;
/**
* @author Wangjzh
* @date 2022/10/8 - 17:38
*/
@WebService(
targetNamespace = "wsdl.bbzdmws.com", //命名空间 指定wsdl说明书在Client端所存放的包路径为com.aerfazhe.wsdl包下
name = "userPortType",
serviceName = "userService", //服务Name名称
portName = "userPortName",
endpointInterface = "com.bbzd.mws.service.UserService" // 指定webService的接口类,此类也需要接入@WebService注解
)
public class UserServiceImpl implements UserService {
@Override
public User getUserName(String name) {
User user = new User(name, 28);
return user;
}
}
配置类
package com.bbzd.mws.config;
import com.bbzd.mws.service.UserService;
import com.bbzd.mws.service.impl.UserServiceImpl;
import org.apache.cxf.Bus;
import org.apache.cxf.bus.spring.SpringBus;
import org.apache.cxf.jaxws22.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.Configuration;
import javax.xml.ws.Endpoint;
/**
* @date 2022/10/8 - 17:47
*/
@Configuration
public class CxfWebServiceConfig {
@Bean("cxfServletRegistration")
public ServletRegistrationBean<CXFServlet> dispatcherServlet() {
return new ServletRegistrationBean<>(new CXFServlet(),"/ws/*");
}
@Bean(name = Bus.DEFAULT_BUS_ID)
public SpringBus springBus() {
return new SpringBus();
}
@Bean
public UserService userService() {
return new UserServiceImpl();
}
@Bean
public Endpoint endpoint(UserService userService) {
EndpointImpl endpoint = new EndpointImpl(springBus(), userService);
endpoint.publish("/user");
return endpoint;
}
}
运行程序,访问wsdl文件地址:
http://localhost:8889/mws/ws/user?wsdl
总结
- 能见到运行结果,就说明服务端已经运行起来了。
- 具体是否能够响应通信请求,还需要一个客户端才能测试,后面一篇是客户端如何开发,关注我,持续给您带来简单,实用的Java编程技巧。
- 没有对输入进行验证,后面研究下怎么把验证框架加上。
猜你喜欢
- 2025-04-29 Jmeter 接口测试
- 2025-04-29 Spring IoC Container 原理解析
- 2025-04-29 开发JAX-RPC Web Services for WebSphere(下)
- 2025-04-29 Spring Cloud入门看这一篇就够了
- 2025-04-29 国内四大主流报表工具深度对比之多样性数据源
- 2025-04-29 常见的序列化框架及Protobuf原理
- 2025-04-29 RPC、Web Service等几种远程监控通信方式对比
- 2025-04-29 翔云身份证号实名认证接口:让身份核验变得简单与高效
- 2025-04-29 《github精选系列》——SpringBoot 全家桶
- 2025-04-29 Arthas线上服务器问题排查
- 最近发表
- 标签列表
-
- location.href (44)
- document.ready (36)
- git checkout -b (34)
- 跃点数 (35)
- 阿里云镜像地址 (33)
- qt qmessagebox (36)
- md5 sha1 (32)
- mybatis plus page (35)
- semaphore 使用详解 (32)
- update from 语句 (32)
- vue @scroll (38)
- 堆栈区别 (33)
- 在线子域名爆破 (32)
- 什么是容器 (33)
- sha1 md5 (33)
- navicat导出数据 (34)
- 阿里云acp考试 (33)
- 阿里云 nacos (34)
- redhat官网下载镜像 (36)
- srs服务器 (33)
- pico开发者 (33)
- https的端口号 (34)
- vscode更改主题 (35)
- 阿里云资源池 (34)
- os.path.join (33)