记录webservice

公司的一个老项目,定义了接口,供其他应用访问.定义的方式就是webservice.

我这边的环境是springboot.

首先引入依赖jar

    

 

声明一个服务端. @WebSerevice注解中name则是对外暴露的服务.

被@WebMethod 注解的方法,则是webservice对外暴露的方法.

import com.alibaba.fastjson.JSON;
import com.prologint.waybill.api.ParameterEntity.GetWaybillYTRequest;
import com.prologint.waybill.api.ParameterEntity.GetWaybillYTResponse;
import com.prologint.waybill.service.GetWaybillYTService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import javax.jws.WebMethod;
import javax.jws.WebService;

@WebService(name = "WaybillYT")
@Component
public class WaybillYTService {


  @WebMethod public String getWaybillYT(String billNo, String branchId, String consignor) { return "ok"; } }

配置webservice.

import javax.xml.ws.Endpoint;

import org.apache.cxf.Bus;
import org.apache.cxf.jaxws.EndpointImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class WaybillYTServiceConfig {
    @Autowired
    private Bus bus;

    @Autowired
    private WaybillYTService waybillYTService;

    /** JAX-WS **/
    @Bean
    public Endpoint endpoint() {
        EndpointImpl endpoint = new EndpointImpl(bus, waybillYTService);
        endpoint.publish("/WaybillYT");
        return endpoint;
    }
}

客户端测试,端口替换为自己的服务器port即可

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

public class Cilent {
    public static void main(String[] args) {
        // 创建动态客户端
        JaxWsDynamicClientFactory dcf = JaxWsDynamicClientFactory.newInstance();
        Client client = dcf.createClient("http://localhost:80/services/WaybillYT?wsdl");
        Object[] objects = new Object[0];
        try {
            // invoke("方法名",参数1,参数2,参数3....);
            objects = client.invoke("getWaybillYT", "111111","222222222","3333333333");
            System.out.println("返回数据:" + objects[0]);
        } catch (java.lang.Exception e) {
            e.printStackTrace();
        }
    }
}
posted @ 2019-09-10 14:08  顶风少年  阅读(174)  评论(0编辑  收藏  举报
返回顶部