springboot webservice客户端和服务端(对接需求-踩坑-发布-完结)

需求:提供上报接口录入数据

先拿到对方的wsdl
在这里插入图片描述
然后根据里面的参数去封装对象
在这里插入图片描述
对应方法
在这里插入图片描述

搭建项目

pom.xml依赖

   <dependency>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-spring-boot-starter-jaxws</artifactId>
            <version>3.2.5</version>
        </dependency>

主要是一个config文件


@Configuration
public class CxfConfig {


    //默认servlet路径/*,可自定义
    @Bean
    public ServletRegistrationBean dispatcherServlet2() {
        return new ServletRegistrationBean(new CXFServlet(), "/scdeap/*");
    }

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


    //终端路径
    @Bean
    public Endpoint endpoint() {
        EndpointImpl endpoint = new EndpointImpl(springBus(), new TestServiceImpl());
        endpoint.publish("/services");
        return endpoint;
    }
}

注意:dispatcherServlet这个名字不能用,会和mvc的重复,换个名字就好

然后是interface和实现类,注入dao做入库操作

@WebService(name = "TestService", targetNamespace = "http://localhost:88/scdeap/services")
public interface TestService {


    @WebMethod
    public void saveLift(@WebParam(name = "reportParameter") ReportParameter reportParameter);
}
}
@WebService(name = "test",
        targetNamespace = "http://localhost:88/scdeap/services",
        endpointInterface = "com.xxx.service.TestService")
@Component
@Log4j2
public class TestServiceImpl implements TestService {


    @Resource
    private LiftDataInterfaceDao liftDataInterfaceDao;


    @Override
    public void saveLift(ReportParameter reportParameter) {

        try {
            LiftDataInterface liftDataInterface = setParameter(reportParameter);
            liftDataInterfaceDao.insert(liftDataInterface);
        } catch (Exception e) {
            log.error("电梯上传失败");
            log.error(e);
            e.printStackTrace();

        }

    }

实体类
上面记得加XmlRootElement

@XmlRootElement(name="DATA")
@Data
public class DATA implements Serializable {

    
    private String OIDNO;
    
    private String Run_status;


}

基本上到这里就可以启动了,启动后访问
http://localhost:8080/scdeap/services?wsdl
有页面生成说明可以了

测试,客户端

2021的idea找不到webservice client的生成的。最后下了2019的版本
在这里插入图片描述

在这里插入图片描述

然后会生成一堆东西
在这里插入图片描述
就可以传参调用方法了
在这里插入图片描述

后记

之前自己搭建了好久这项目,其实不用,直接可以生成
在这里插入图片描述
这里就可以了,生成后把自己要用的业务逻辑放进去就好了。生成对应的客户端代码,然后发布使用。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值