idea 用java写一个简单webservice接口 示例+调用

一、创建一个基础springboot项目

1.创建项目
在这里插入图片描述
2.选择需要的依赖jar包(这里先不选择依赖)
在这里插入图片描述
3.创建完成
在这里插入图片描述

二、编写代码

1.修改pom.xml文件,引入依赖

 <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-rt-frontend-jaxws</artifactId>
            <version>3.4.3</version>
        </dependency>
        <dependency>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-rt-transports-http</artifactId>
            <version>3.4.3</version>
        </dependency>
        <dependency>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-spring-boot-starter-jaxws</artifactId>
            <version>3.4.3</version>
        </dependency>

    </dependencies>

2.创建包和类
在这里插入图片描述
.
.
.

WebServiceConfig类

package com.demo.config;

import com.demo.webservice.WebServiceTest;
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;

@Configuration
public class WebServiceConfig {

    @Bean
    public ServletRegistrationBean<CXFServlet> myServlet() {
        return new ServletRegistrationBean<>(new CXFServlet(), "/soap/*");
    }

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

    @Autowired
    private WebServiceTest webServiceTest;

    //去掉注释后:wsdl访问地址为:http://127.0.0.1:8080/soap/test?wsdl
    @Bean
    public Endpoint testEndpoint() {
        EndpointImpl endpoint = new EndpointImpl(springBus(), webServiceTest);
        endpoint.publish("/test");
        return endpoint;
    }

}

.
.
.
WebServiceTest接口

package com.demo.webservice;

import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebResult;
import javax.jws.WebService;
import javax.xml.ws.RequestWrapper;
import javax.xml.ws.ResponseWrapper;

/**
 * @author: gzc
 * @createTime: 2021/5/18 
 * @description:
 **/
@WebService(targetNamespace = WebServiceTest.TARGET_NAME_SPACE,
        name = WebServiceTest.WEB_SERVICE_NAME)
public interface WebServiceTest {

    String TARGET_NAME_SPACE = "http://tempuri.org/";

    String WEB_SERVICE_NAME = "Service1Soap";

    String GETSUM = "GetSum";

    @WebMethod(operationName = GETSUM, action = WebServiceTest.TARGET_NAME_SPACE + GETSUM)
    @RequestWrapper(localName = GETSUM, targetNamespace = WebServiceTest.TARGET_NAME_SPACE)
    @ResponseWrapper(localName = "GetSumResponse", targetNamespace = WebServiceTest.TARGET_NAME_SPACE)
    @WebResult(name = "GetSumResult", targetNamespace = WebServiceTest.TARGET_NAME_SPACE)
    Integer getSum(
            @WebParam(partName = "number1", name = "number1", targetNamespace = WebServiceTest.TARGET_NAME_SPACE)
                    Integer number1,
            @WebParam(partName = "number2", name = "number2", targetNamespace = WebServiceTest.TARGET_NAME_SPACE)
                    Integer number2);
}

.
.
.
WebServiceTestImpl实现类

package com.demo.webservice.impl;

import com.demo.webservice.WebServiceTest;
import org.springframework.stereotype.Component;

import javax.jws.WebService;
import javax.xml.ws.BindingType;
import javax.xml.ws.soap.SOAPBinding;

/**
 * @author: gzc
 * @createTime: 2021/5/18 
 * @description:
 **/
@Component
@BindingType(value = SOAPBinding.SOAP12HTTP_BINDING)
@WebService(
        serviceName = "Service1Soap12",
        portName = WebServiceTest.WEB_SERVICE_NAME,
        targetNamespace = WebServiceTest.TARGET_NAME_SPACE,
        endpointInterface = "com.demo.webservice.WebServiceTest")
public class WebServiceTestImpl implements WebServiceTest {


    @Override
    public Integer getSum(Integer number1, Integer number2) {
        return number1+number2;
    }
}

.
.
.

三、测试webservice接口

1.下载soapui测试软件
在这里插入图片描述
2.安装soapui ( 数据存储的盘符按需要修改一下,其他的步骤无脑下一步就OK了 )
在这里插入图片描述
4.打开soapui工具
在这里插入图片描述
5.创建项目
在这里插入图片描述
注意: wsdl路径地址是 你服务器的ip+端口+soap+配置中自定义的路径+?wsdl
在这里插入图片描述

6.添加请求参数,发起webservice请求并获取返回内容
在这里插入图片描述
.
.
.
就此写完一个简单的webservice接口示例了!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值