公司的一个老项目,定义了接口,供其他应用访问.定义的方式就是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();
}
}
}
手机扫一扫
移动阅读更方便
你可能感兴趣的文章