通过cxf JaxWsDynamicClientFactory进行WebService 客户端调用

本文介绍了如何利用cxf的JaxWsDynamicClientFactory方便地进行WebService客户端调用,强调了这种方法的优势在于仅需WSDL地址,无需手动生成代码,避免了传统方式可能的代码冲突,提高了代码的优雅性。文中提到了整合相关jar包并添加POM依赖的步骤,以及展示了简单的Java实现代码。

通过JaxWsDynamicClientFactory进行WebService 客户端调用的一个好处就是只需要知道了WSDL地址就行了,不需要手动生成任何代码,这样,如果需要调用多个WebService服务的话,只需要创建多个Client即可,不用考虑传统方式(生成代码)冲突问题,这样可以让代码更优雅。

下面给出步骤

首先整合相关jar包,在POM文件中添加如下依赖

<!-- cxf Web Service -->
        <dependency>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-rt-frontend-jaxws</artifactId>
            <version>3.1.10</version>
        </dependency>
        <dependency>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-rt-transports-http</artifactId>
            <version>3.1.10</version>
        </dependency>

然后java代码如下:

        JaxWsDynamicClientFactory clientFactory = JaxWsDynamicClientFactory.newInstance();
		Client client = clientFactory.createClient(webserviceAddress);
		Object[] result = null;
		try {
            //如果有命名空间的话
			QName operationName = new QName(namespaceURI,localPort); //如果有命名空间需要加上这个,第一个参数为命名空间名称,第二个参数为WebService方法名称
			result = client.invoke(operationName,param1, param2);//后面为WebService请求参数数组
            //如果没有命名空间的话
           result = client.invoke(operationName, param1); //注意第一个参数是字符串类型,表示WebService方法名称,第二个参数为请求参数
		} catch (Exception e) {
			String errMsg = "WebService发生异常!";
			result = new Object[] { errMsg };
			logger.error(errMsg, e);
		}

 

评论 36
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值