Apache CXF生成java代码用java调用Webservice接口

这里写自定义目录标题

使用java调用webservice接口

当我们使用java去访问webservice的接口时,有很多种方式,这里我们使用apache cxf的方式,因为他很方便的可以将wsdl文件直接转换生成java代码。

进入apache cxf的bin目录下,使用如下命令将wsdl文件生成java代码

// An highlighted block
wsdl2java -d . -p com.cxf.client http://localhost:8080/testCXF/service/cxfService?wsdl

将生成的代码拷贝到你的项目工程中,
在这里插入图片描述

接着,在你的项目工程里,新建一个工具类,我这里取名为WebApiUtil.java

参考如下代码

private static final QName SERVICE_NAME = new QName("urn:sap-com:document:sap:rfc:functions", "ZWSPI0000");

	private static final Logger LOGGER = LogManager.getLogger(WebApiUtil.class);

	/**
	 * 
	 * @param serviceappid
	 * @param servicemodule
	 * @param mainFormat
	 * @param mainStr 参数 xml_1 json_0   
	 * @return
	 */
	public static String get(String serviceappid, String servicemodule, String mainStr, String mainFormat) {
		
		StackTraceElement[] es = Thread.currentThread().getStackTrace();
        
		String detail = "空";
		
		if(es.length>=2){
			detail = es[2].getClassName()+"_"+es[2].getMethodName()+"_"+es[2].getLineNumber();
		}

		String methodId = StrUtil.getUUID();
		StringBuffer requestStr = new StringBuffer("接口请求_");
		requestStr.append(methodId);
		requestStr.append(":");
		if(StringUtils.isNotBlank(serviceappid)){
			requestStr.append("serviceAppId_");
			requestStr.append(serviceappid);
			requestStr.append(",");
		}
		if(StringUtils.isNotBlank(servicemodule)){
			requestStr.append("serviceModule");
			requestStr.append(servicemodule);
			requestStr.append(",");
		}
		if(StringUtils.isNotBlank(mainStr)){
			requestStr.append("mainStr");
			requestStr.append(mainStr);
			requestStr.append(",");
		}
		if(StringUtils.isNotBlank(mainFormat)){
			requestStr.append("mainFormat");
			requestStr.append(mainFormat);
			requestStr.append(",");
		}
		URL wsdlURL = ZWSPI0000_Service.WSDL_LOCATION;
		ZWSPI0000_Service ss = new ZWSPI0000_Service(wsdlURL, SERVICE_NAME);
		ZWSPI0000 port = ss.getBinding();

		{
			//VILST0测试      VLSPRD正式
			String _zfmPIWS0000__return = port.zfmPIWS0000("VILST0", "", methodId, "", "", "", "0", "0", mainFormat, mainStr, "", "", serviceappid, "", servicemodule, "", "", "", "", "", "");
			System.out.println("接口响应_"+_zfmPIWS0000__return);
			LOGGER.info("接口响应_"+detail+"_"+methodId+":"+_zfmPIWS0000__return+"_"+mainStr);
			return _zfmPIWS0000__return;
		}
	}

使用的时候,如果想调用wenservice上的接口,直接在代码中这样写

WebApiUtil.get()....

学会了吗?有不懂的欢迎在下方评论。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

汤姆看特

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值