关于soap调用webService服务器时收到参数为空的解决办法
2017-03-17 11:41
471 查看
1、问题背景:
最近一个项目,切换统一认证,但是原来集成的业务系统不动,新的统一认证要保留原来的接口服务,这样就得模拟原来的接口做服务。
2、原来的调用是用soap方式调用的。
指定了命名空间new QName(namespace, “a”),如果这个不指定后台接收还方便一些。
3、服务器端
注意:@WebParam(name = “a”,targetNamespace=”http://a.org/”),要指定接收targetNamespace
最近一个项目,切换统一认证,但是原来集成的业务系统不动,新的统一认证要保留原来的接口服务,这样就得模拟原来的接口做服务。
2、原来的调用是用soap方式调用的。
public static String aaa(String a, String b, String c, String webserviceurl) { String namespace = "http://a.org/"; String action = "va"; String isPass = ""; try { Service service = new Service(); Call call = (Call) service.createCall(); call.setTargetEndpointAddress(webserviceurl); call.setUseSOAPAction(true); call.setSOAPActionURI(namespace + action); call.setOperationName(new QName(namespace, action)); call.addParameter(new QName(namespace, "a"), XMLType.XSD_STRING, ParameterMode.IN); call.addParameter(new QName(namespace, "b"), XMLType.XSD_STRING, ParameterMode.IN); call.addParameter(new QName(namespace, "c"), XMLType.XSD_STRING, ParameterMode.IN); call.setReturnType(XMLType.XSD_STRING); isPass = (String) call.invoke(new Object[] { a, b, c }); } catch (Exception e) { e.printStackTrace(); } return isPass; }
指定了命名空间new QName(namespace, “a”),如果这个不指定后台接收还方便一些。
call.addParameter(new QName(namespace, "a"), XMLType.XSD_STRING, ParameterMode.IN);
3、服务器端
注意:@WebParam(name = “a”,targetNamespace=”http://a.org/”),要指定接收targetNamespace
@WebMethod public String U_validate(@WebParam(name = "a",targetNamespace="http://a.org/") String a, @WebParam(name = "b",targetNamespace="http://a.org/") String b, @WebParam(name = "c",targetNamespace="http://a.org/") String c) { StringBuffer psb = new StringBuffer(); psb.append("----a:" + a); psb.append("----b:" + b); psb.append("----c:" + c); return "P"+psb; }
相关文章推荐
- Axis2 调用.net webservice 出现 服务器未能识别 HTTP 头 SOAPAction 的值错误 的解决办法
- Java调用.Net WebService问题,以及参数为空解决办法
- 解决:Java调用.net的webService产生“服务器未能识别 HTTP 标头 SOAPAction 的值”错误
- VS2010编译通过Soap调用webservice的VC6项目 IXMLDOMNode 不明确的符号的解决办法
- 解决:Java调用.net的webService产生“服务器未能识别 HTTP 标头 SOAPAction 的值”错误
- VC通过Soap调用Webservice编译出现__missing_type__错误解决办法
- 解决 -- java 调用webservice 服务端收到参数为null
- Java调用.Net WebService参数为空解决办法 (远程)调试webservice方法 转
- Java调用.Net WebService参数为空解决办法 (远程)调试webservice方法
- ASP 调用带返回参数和记录集的存储过程二次访问数据库服务器的解决办法
- 【转】WebService第一次调用正常,第二次调用超时的解决办法。
- 错误:程序中调用WebService返回“http 401 Access Denied”解决办法
- Delphi 调用C#编写的WebService 参数为Null解决方法
- 关于pix.asa防火墙内网通过域名访问内部服务器的解决办法
- 关于在java环境下调用 .net的 webservice无法获取参数的问题
- Delphi 调用C#编写的WebService 参数为Null解决方法
- 解决办法:服务器未能识别 HTTP 标头 SOAPAction 的值
- 存储过程中调用 连接服务器中创建的外部服务器连接 “异类查询要求为连接设置 ANSI_NULLS 和 ANSI_WARNINGS 选项” 的解决办法
- 解决Ruby调用带中文参数的WebService的问题。
- 关于SOAPpy传递对象参数调用WebService的问题总结