解决 -- java 调用webservice 服务端收到参数为null

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。

我的客户端和服务端都写的很简单,只是调用服务的时候,

服务端得不到参数,后来发现只改一个地方就可以了:

call.addParameter("arg0", XMLType.XSD_DATE,ParameterMode.IN);  这样是OK的,

call.addParameter("name", XMLType.XSD_DATE,ParameterMode.IN); 这样服务端接收到的参数就是 null 。

 

就是红色位置,参数不能写具体的参数名,

要写为:   arg0 ,我在网上看到说可以改设置,但是 默认要写为这样才能传参成功。

 

 

服务端:

 

 

package com.boco.esb.receive;import javax.jws.WebMethod;
import javax.jws.WebService;
import javax.xml.ws.Endpoint;
//import org.apache.axis2.context.MessageContext;  @WebService(serviceName="HermesService",targetNamespace = "http://com.boco.esb.receive")
public class HermesService {//该方法就是要暴露给其他应用程序调用的方法  @WebMethod(operationName="example")public String example(String param){  System.out.println("------------------- 调用服务端方法 !-----------------");StringBuffer paramStr = new StringBuffer(param);System.out.println("-----param参数为:"+paramStr);return param;  }  /** * 认证*/  public static void checkHesder() throws Exception  {}//这里我们使用main方法来发布我们的service  public static void main(String[] args){  /*** 参数1:服务的发布地址* 参数2:服务的实现者* Endpoint 会重新启动一个线程*/Endpoint.publish("http://localhost:7081/Hermes/services/HermesService",new HermesService());  System.out.println("------- com.boco.esb.receive的HDMP的服务启动成功!   -----   ~_~   ----- ");  }  }

 

 

 

 

 

客户端:

 

 

package hdmpClient;import javax.xml.namespace.QName;
import javax.xml.rpc.ParameterMode;import org.apache.axis.AxisEngine;
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import org.apache.axis.encoding.XMLType;
import org.apache.axis.message.SOAPHeaderElement;
import org.apache.axis.soap.SOAPConstants;public class Client extends org.apache.axis.client.Stub{public static void main(String[] args) {try {new Client().get();} catch (Exception e) {e.printStackTrace();}}private void get() throws Exception {Service service = new Service() ;  Call call = (Call) service.createCall();SOAPHeaderElement serviceCode = new SOAPHeaderElement(new QName("cn.com.boco.HermesService", "ServiceCode"), "SRCH.SERVICE.TEST_GIS.GIS_APP");SOAPHeaderElement userName = new SOAPHeaderElement(new QName("cn.com.boco.HermesService", "UserName"), "IRMS");SOAPHeaderElement authCode = new SOAPHeaderElement(new QName("cn.com.boco.HermesService", "AuthCode"), "ca45672f-2c9a-4961-9597-a6f562fdf787");SOAPHeaderElement eventId = new SOAPHeaderElement(new QName("cn.com.boco.HermesService", "EventId"), "41591591");call.addHeader(serviceCode);call.addHeader(userName);call.addHeader(authCode);call.addHeader(eventId);call.setTargetEndpointAddress("http://localhost:7081/Hermes/services/HermesService");call.setSOAPActionURI("http://com.boco.esb.receive/example");call.setOperationName(new QName("http://com.boco.esb.receive", "example")); // example 为服务端接口方法名  call.setEncodingStyle(null);call.setUseSOAPAction(true);call.setProperty(Call.SEND_TYPE_ATTR, Boolean.FALSE);call.setProperty(AxisEngine.PROP_DOMULTIREFS, Boolean.FALSE);call.setSOAPVersion(SOAPConstants.SOAP11_CONSTANTS);setRequestHeaders(call);setAttachments(call);// 设置接口参数与类型( 以下2种都能正常传参 )
//		call.addParameter(new QName("arg0"),XMLType.XSD_STRING, ParameterMode.IN);call.addParameter("arg0", XMLType.XSD_DATE,ParameterMode.IN);  call.setReturnType(XMLType.XSD_STRING);// 设置返回数据类型  String[] param = new String[1]; // 参数param[0] = "参数1,参数2,参数3"; // 实际可用jsonString result = (String) call.invoke(param);System.out.println("result为--------------------"+result);}}

 

 

 

 

 

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/451118.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

fastJson性能测试

测试装备: mac pro 6核12线程 测试代码: (1)序列化对象: import lombok.Data;Data public class User {int id;String name;int age;String address; } (2)序列化逻辑: import…

避免流量高峰期CDN问题的10个方法

在视频流媒体中,因平台火爆而出现问题是件好事。至少,这比根本没有观众要好。\\也许你正在使用世界级的CDN,但是,在大型赛事期间,当CDN的服务器和对等点流量变得饱和的时候,一些用户还是无法享受到流畅的体…

Android应用进入爆发期 手机游戏仍是市场重心

近日,91无线发布了《91无线移动应用发展趋势报告(Android版)》。报告显示,2012年,无论Android移动应用用户下载还是开发者研发均呈爆发态势,手机游戏仍是市场重心所在。同时,Android移动应用下载…

MQTT Client软件-MQTTBox

最近发现了一个连接mqtt broker的软件:MQTTBox。GitHub地址:https://github.com/workswithweb/MQTTBox 官网网站的介绍为:使用MQTTBox增强你的物联网流程 MQTT客户端特性 支持TCP、TLS、Web Sockets和安全的Web Sockets连接MQTT服务器支持各种…

fastJson toJSONString注意点

fastJosn是阿里爸爸推出一款高性能序列化工具,号称最快的json序列化工具。不过好像也就那样,在量比较大的时候优势才会明显。单次序列化时间还是会达到几十毫秒的级别。 Fastjson is a Java library that can be used to convert Java Objects into the…

WebService中文件传输

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 WebService处理传递普通的信息,还可以传输文件,下面介绍WebService是怎么完成文件传输的。 1、 首先编写服务器端…

Django框架-Form组件

一、DjangoForm组件介绍 我们之前在html页面中利用form表单向后端提交数据时,都会写一些获取用户输入的标签并且用form标签把它们包起来。 与此同时我们在好多场景下都需要对用户的输入做校验,比如验证用户是否输入,输入的长度和格式等是否正…

中国经济转型知易行难

摘要:一个亚洲国家正在崛起,出口机器势不可挡,财富快速增长,觉得美国已是过去,自己的时代已经到来。这是2012年的中国?没错———但也是上世纪80年代的日本。 美国《芝加哥论坛报》网站5月20日文章&#xf…

进程和线程的剖析

进程和线程的区别?什么时候用进程?什么时候用线程? 答:首先得知道什么是进程什么是线程? 我的理解是进程是指在系统中正在运行的一个应用程序;程序一旦运行就是进程,或者更专业化来说&#xff1…

解决 java.net.ConnectException: Connection refused: connect 异常

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 一、 我的情况很简单: 只是因为我调用服务端接口方法包名没有写对,应该如下面代码中这样写: call.…

主席树的各类模板(区间第k大数【动,静】,区间不同数的个数,区间=k的个数)...

取板粗 好东西来的 1.(HDOJ2665)http://acm.hdu.edu.cn/showproblem.php?pid2665 (POJ2104)http://poj.org/problem?id2104 (POJ2761)http://poj.org/problem?id2761 题意:求区间第K大&…

java类内部的变量

类内部的变量分为两部分: 一.类的成员变量 在类内部,变量定义部分,定义的变量。 二.局部变量 在类内方法体中定义的变量和方法中涉及的变量。 成员变量和局部变量的区别: (1)成员变量在整个类中都有效…

腾讯搜搜退出PC搜索领域:百度搜狗迎来双龙竞争

摘要:据北京商报报道,上周末,腾讯对公司组织架构进行了大规模调整。业内普遍认为,搜搜并入腾讯无线后,这个独立搜索平台将被合并,失去独立性,也将令搜搜官网域名soso.com走向“没落”。据北京商…

facade-pattern外观模式

外观模式: 外观模式是面向对象编程中的重要设计模式。外观类用来掩盖复杂的内部逻辑,为用户提供简洁统一的服务接口。外观类的主要功能如下: 1.通过提供简明的对外API接口,来提高程序的可阅读性和间接性。 2.提供通用的特定功能…

Web Service 客户端,调用服务方法

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 只是最简单的调用web service 服务,至于要传什么参数全看到业务了。 以下是最简单的调用方式 : package hdmp…

分享Spring Cloud分布式微服务架构图

分布式、微服务、云架构JAVA语言开发、跨平台、高性能、高可用、安全、服务化、模块化、组件化、驱动式开发模式 从现在开始,我这边会将近期研发的springcloud微服务云架构的搭建过程和精髓记录下来,帮助更多有兴趣研发spring cloud框架的朋友&#xff0…

返回一个list的全部 倒叙排列的方法

#反向迭代一个listlist[2,4,6,4,3,7,5,45,23,6,5,32,6,52,324,23,65,76,3,234,6,3,4,356,7,74,234,35,7,86]def funrev(list): list1[] for i in range(len(list)): list1.append(list[-i-1]) print(list1) return list1print(************************)lis…

互联网手机潮进入PK时代:周鸿祎激战小米雷军

摘要:事实上,周鸿祎本人也多次强调,对于对手他一向实事求是,“对小米手机这种模式持肯定态度,它是第一个做互联网手机的”。花费精力做出漂亮的销售业绩,这是互联网手机最关键命题,配置战、价格…

很多人问为什么使用联合索引,为什么不建两个单独的索引呢?

So why not just create two indexes, one on last_name and one on first_name? You could do that, but MySQL won’t use them both at the same time. In fact, MySQL will only ever use one index per table per query—except for UNIONs.[3] This fact is important e…

oracle表被锁了怎么处理

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 首先你要知道表锁住了是不是正常锁?因为任何DML语句都会对表加锁。你要先查一下是那个会话那个sql锁住了表,有可…