博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java Axis Service 手动调用WebService 入参为NULL
阅读量:6213 次
发布时间:2019-06-21

本文共 1923 字,大约阅读时间需要 6 分钟。

  hot3.png

####环境前提:

  • axis 版本为 1.7
  • ws 采用 jws 发布

ws发布源码

import javax.xml.ws.Endpoint;/** * 服务发布主线程 */public class MainPublisher {	public static void main(String[] args) {		Endpoint.publish("http://192.168.2.31:9022/services/auth",new HiveWevServer());  		System.out.println("启动成功");	}}

ws服务

import javax.jws.WebService;/** * Webservice Hive查询服务 * @author linx */@WebServicepublic class HiveWevServer {	public String getAuthInfo(String input){		System.out.println("====== 入参:"+input);		return "";	}}

axis 调用代码

import javax.xml.namespace.QName;import org.apache.axis.client.Call;import org.apache.axis.client.Service;/** * WebService 接口调用 * @author linx */@org.springframework.stereotype.Servicepublic class WsHandlerService {	/**	 * 调用WebService 	 */	public String authPersionalInfo(String qid,String mobile,String name, String idCard){		String result = "";		try{						Service service = new Service(); 			Call call = (Call) service.createCall(); 			call.setTargetEndpointAddress("http://192.168.2.31:9022/services/auth?wsdl"); 			call.setOperationName(new QName("http://oper.hive.com/", "getAuthInfo"));//			call.addParameter("in0", org.apache.axis.encoding.XMLType.XSD_STRING,javax.xml.rpc.ParameterMode.IN);			call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING);//			result = (String)call.invoke(new Object[]{mobile}); 		}catch(Exception e){			e.printStackTrace();			System.out.println("========Error==========");		}		return result;	}}

问题

由以上发布的WebService服务,通过axis以上方式调用,ws服务中getAuthInfo的方法始终收到入参为null

解决方法

以下是CSDN查到得有效方案,原贴:

结合SoapUI分析发现,如果jws通过annotation来发布,或者类似方式,通过axis调用,需要注意两点: 1)在call.setOperationName是必须通过Qname来制定namespaceURI 2)在设定参数时,不使用服务端定义的参数名,而是arg0~argN来定义,也不需制定namespaceURI,上述代码 call.addParameter(new QName(namespace, "TransNo"), XMLType.XSD_STRING, ParameterMode.IN); 修改为 call.addParameter("arg0", XMLType.XSD_STRING, ParameterMode.IN); 有几个参数,即设定几个。 提供参考,可测试试验一下。

转载于:https://my.oschina.net/linx/blog/733378

你可能感兴趣的文章
函数&作用域提升
查看>>
前端常用设计模式(1)--装饰器(decorator)
查看>>
SAP S/4HANA生产订单创建时使用的工厂数据是从什么地方带出来的
查看>>
《2018年云上挖矿态势分析报告》发布,非Web类应用安全风险需重点关注
查看>>
原生js实现全屏滚动--fullPage
查看>>
JavaScript 是如何工作的:模块的构建以及对应的打包工具
查看>>
以太坊是什么?
查看>>
JavaScript对象的几种创建方式?
查看>>
什么是Javascript函数节流?
查看>>
ogg转mp3格式的详情教程
查看>>
腾讯 Tars-Go 服务获取自定义模版(配置)值
查看>>
关于vue父子组件之间事件触发及数据传递问题
查看>>
解析JavaScript 正则表达式与字符串查找
查看>>
关于springcloud Gateway中的限流
查看>>
数据自动化报告 Google Analytics Report
查看>>
力扣(LeetCode)56
查看>>
10年java架构师教你如何快速打好Java基础?
查看>>
Mac上用docker搭建Neo私链并调试
查看>>
oauth 认证服务器 配置HandlerInterceptorAdapter
查看>>
4-array/heapq/queue模块
查看>>