webservice调用时怎么传参数

<?xml version="1.0" encoding="UTF-8"?>

-

-

-xsd:schema

/xsd:schema

-

-

-

-

-

-

-

-

-

-

下面是我的调用代码:

 Service service = new Service();
        Call call = (Call) service.createCall();
        String url = "http://192.1.1.64:8082/Service/ServiceHello?wsdl";
        call.setTargetEndpointAddress(url);
        call.setOperationName(new QName("http://webservice_302/", "getValue"));
        call.addParameter(new QName("http://webservice_302/", "name"), org.apache.axis.encoding.XMLType.XSD_STRING,
                javax.xml.rpc.ParameterMode.IN);
        call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING);
        String result = (String) call.invoke(new String[] { "11" });
        System.out.println(result);

下面是接口的方法点:

 public String getValue(String name){
        return "欢迎你! "+name;
    }

可以成功调用,返回结果是:欢迎你! null

说明参数没有传进去,请问这里我应该怎么写呢?

5个回答

入参类型应该是org.apache.axis.Constants.XSD_STRING,不认为是org.apache.axis.encoding.XMLType.XSD_STRING

zhao5243
深爱甜蜜 额,点采纳点错了。
接近 2 年之前 回复
zhao5243
深爱甜蜜 换了你的试了下还是不行。
接近 2 年之前 回复

<?xml version="1.0" encoding="UTF-8"?><!-- Published by JAX-WS RI (http://jax-ws.java.net). RI's version is JAX-WS RI 2.2.9-b130926.1035 svn-revision#5f6196f2b90e9460065a4c2f4e30e065b245e51e. --><!-- Generated by JAX-WS RI (http://jax-ws.java.net). RI's version is JAX-WS RI 2.2.9-b130926.1035 svn-revision#5f6196f2b90e9460065a4c2f4e30e065b245e51e. --><definitions xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:wsp="http://www.w3.org/ns/ws-policy" xmlns:wsp1_2="http://schemas.xmlsoap.org/ws/2004/09/policy" xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://webservice_302/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://webservice_302/" name="HelloService">
<types>
<xsd:schema>
<xsd:import namespace="http://webservice_302/" schemaLocation="http://192.1.1.64:8082/Service/ServiceHello?xsd=1"></xsd:import>
</xsd:schema>
</types>
<message name="getValue">
<part name="parameters" element="tns:getValue"></part>
</message>
<message name="getValueResponse">
<part name="parameters" element="tns:getValueResponse"></part>
</message>
<portType name="Hello">
<operation name="getValue">
<input wsam:Action="http://webservice_302/Hello/getValueRequest" message="tns:getValue"></input>
<output wsam:Action="http://webservice_302/Hello/getValueResponse" message="tns:getValueResponse"></output>
</operation>
</portType>
<binding name="HelloPortBinding" type="tns:Hello">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"></soap:binding>
<operation name="getValue">
<soap:operation soapAction=""></soap:operation>
<input>
<soap:body use="literal"></soap:body>
</input>
<output>
<soap:body use="literal"></soap:body>
</output>
</operation>
</binding>
<service name="HelloService">
<port name="HelloPort" binding="tns:HelloPortBinding">
<soap:address location="http://192.1.1.64:8082/Service/ServiceHello"></soap:address>
</port>
</service>
</definitions>

/**
* 服务调用
* @param serverName 服务名称
* @param parameters 业务参数(接口中规定的方法的参数)
* @return
* @throws AxisFault
*/
public static String rpcCall(String serverName, Object[] parameters) throws AxisFault {
//使用rpc方式调用webService
RPCServiceClient serviceClient = new RPCServiceClient();
//调用指定webService的url
EndpointReference targetEPR = new EndpointReference(Constant.WEB_SERVICE_WSDL_URL);
Options options = serviceClient.getOptions();
//客户端开启session对话管理
options.setManageSession(true);
options.setProperty(HTTPConstants.REUSE_HTTP_CLIENT,true);
//确定目标服务地址
options.setTo(targetEPR);
//确定调用方法
options.setAction("urn:"+serverName);
//指定接口的命名空间和调用的方法名
QName qname = new QName(Constant.NAME_SPACE, serverName);
//调用方法传递参数 调用服务 获取服务返回的结果集
OMElement element = serviceClient.invokeBlocking(qname, parameters);
//返回结果就是由一段OMElement对象封装的xml字符串
//我们可以对之灵活应用,下面我取第一个元素值,并打印之,因为调用的方法返回一个结果
String result = element.getFirstElement().getText();
serviceClient.cleanupTransport();
return result;
}

qq_35280588
qq_35280588 回复zhao5243: 哦哦,没事,问题解决就行,很高兴能帮到你。
一年多之前 回复
zhao5243
深爱甜蜜 按照你的方法解决了,谢谢。但是点采纳点错了,不好意思啊。
接近 2 年之前 回复
qq_35280588
qq_35280588 回复zhao5243: https://bbs.csdn.net/topics/391904524
接近 2 年之前 回复
zhao5243
深爱甜蜜 回复qq_35280588: 报错,Unable to instantiate deployer org.apache.axis2.deployment.ServiceDeployer; see debug logs for more details
接近 2 年之前 回复
qq_35280588
qq_35280588 回复zhao5243: import org.apache.axiom.om.OMElement; import org.apache.axis2.AxisFault; import org.apache.axis2.addressing.EndpointReference; import org.apache.axis2.client.Options; import org.apache.axis2.rpc.client.RPCServiceClient; import org.apache.axis2.transport.http.HTTPConstants; import javax.xml.namespace.QName;
接近 2 年之前 回复
qq_35280588
qq_35280588 回复zhao5243: 其实写在配置文件里更好,方便后期维护
接近 2 年之前 回复
qq_35280588
qq_35280588 回复zhao5243: 自己定义的一个类,我是把wsdl地址,name_space,用户名,密码,都写在了这个类里,
接近 2 年之前 回复
zhao5243
深爱甜蜜 那个,Constant是哪个包的?
接近 2 年之前 回复

public static String rpcCall(String serverName, Object[] parameters) throws AxisFault {
RPCServiceClient serviceClient = new RPCServiceClient();
EndpointReference targetEPR = new EndpointReference(Constant.WEB_SERVICE_WSDL_URL);
Options options = serviceClient.getOptions();
options.setManageSession(true);
options.setProperty(HTTPConstants.REUSE_HTTP_CLIENT,true);
options.setTo(targetEPR);
options.setAction("urn:"+serverName);
QName qname = new QName(Constant.NAME_SPACE, serverName);
OMElement element = serviceClient.invokeBlocking(qname, parameters);
String result = element.getFirstElement().getText();
serviceClient.cleanupTransport();
return result;
}

zhao5243
深爱甜蜜 谢谢,不过我希望是在我的代码基础上改。你这个改动太大了,完全不一样啊。
接近 2 年之前 回复

https://download.csdn.net/download/qq_34346915/10593706 里面有全套的接口生成以及调用

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
webservice通过url传递参数调用接口,参数中含“/”要怎么处理?

我现在在做一个调用企业QQ接口来发信息的平台,是通过webservice在url传递参数调用接口。。 但是短信内容中含斜杠时会干扰参数的传递,大神教我怎么解决啊? @GET @Path("/sendTips/{receivers}/{content}/{windowTitle}/{tipsTitle}/{tipsUrl}") @Produces ({MediaType.APPLICATION_JSON}) public String sendTips(@PathParam("receivers") String receivers, @PathParam("content") String content, @PathParam("windowsTitle") String windowsTitle, @PathParam("tipsTitle") String tipsTitle, @PathParam("tipsUrl") String tipsUrl) throws SystemException;

.net动态调用webservice时,如果参数为实体怎么办?

//生成代理实例,并调用方法 System.Reflection.Assembly assembly = cr.CompiledAssembly; Type t = assembly.GetType(@namespace + "." + classname, true, true); object obj = Activator.CreateInstance(t); System.Reflection.MethodInfo mi = t.GetMethod(methodname); return mi.Invoke(obj, args); args 这个object对象怎么转换为服务端自定义的传入类? 网上有传二进制数组的,但服务端是人家的也没法弄

我使用springboot cxf 调用webservice接口,传入参数,无法正常调用接口?

环境:springboot 2.0.2 cxf3.2.5 文件上传, webservice接口: ![图片说明](https://img-ask.csdn.net/upload/201812/12/1544604689_531421.png) Java 调用: ![图片说明](https://img-ask.csdn.net/upload/201812/12/1544604733_112335.png) webservice需要一个 base64Binary,我在Java中传入byte[],会出现以下错误 ![图片说明](https://img-ask.csdn.net/upload/201812/12/1544604906_396846.png) ![图片说明](https://img-ask.csdn.net/upload/201812/12/1544604916_672640.png) 我将文件转成btye[] 在通过base64加密,在转回btye[] 依旧出现上面问题。 然而我转入一个文件转成btye[] 在通过base64加密的String时,只要不是byte[]类型,都会报下面错误: ![图片说明](https://img-ask.csdn.net/upload/201812/12/1544605128_602878.png) 哪位大佬能帮忙解决yi'xia

Java调用Webservice数组参数传递有问题

String[] arr = new String[2]; arr[0]="abc"; arr[1]="def"; String str="myteststr"; Client client = new Client(new URL("http://xx.xx.xx.xx:9084/eee/infoService?wsdl")); Object[] results = client.invoke("getStudentInfo",new Object[] {str,arr}); 上面的代码是我调用java webservice的getStudentInfo方法。参数为一个字符串数组一个字符串,但是我在后台的 getStudentInfo方法打印的时候str参数能正常打印出来,但是arr这个字符串数组却打印的不对。只是打印出是一个String的对象。并且我从后台输出.length的时候竟然是1。但是我从客户端调用的时候明明传进去的是一个长度为2的字符串数组。求高手指导, 谢谢!!

axis1.4调用webservice 传递自定义对象参数出错

调用客户端后出现: org.xml.sax.SAXException: Invalid element in cn.services.QueryEquipmentRequest - queryEquipmentRequest 客户端代码(其中queryEquipmentRequest,QueryEquipmentResponse是我自定义的对象): call.addParameter(new QName(nameSpace, "queryEquipmentRequest"), new QName(nameSpace, "queryEquipmentRequest"), ParameterMode.IN); // // @@需修改成对应的输出参数名 call.setReturnType(new QName(nameSpace, "queryEquipmentResponse"), QueryEquipmentResponse.class); // // // 需要根据xsd生成的bean,对输入输出的XSD文件定义的类型进行注册映射关系 //// // @@如本服务输入输出XSD文件中有四个自定义类型 queryEquipmentRequest、queryEquipmentResponse、deviceItem、deviceItemList,配置如下 QName queryEquipmentRequest = new QName(nameSpace, "queryEquipmentRequest"); call.registerTypeMapping(QueryEquipmentRequest.class, queryEquipmentRequest, new BeanSerializerFactory(QueryEquipmentRequest.class, queryEquipmentRequest), new BeanDeserializerFactory( QueryEquipmentRequest.class, queryEquipmentRequest)); // QName queryEquipmentResponse = new QName(nameSpace, "queryEquipmentResponse"); call.registerTypeMapping(QueryEquipmentResponse.class, queryEquipmentResponse, new BeanSerializerFactory(QueryEquipmentResponse.class, queryEquipmentResponse), new BeanDeserializerFactory( QueryEquipmentResponse.class, queryEquipmentResponse)); 服务端的wsdl文件为: <wsdl:definitions targetNamespace="http://gd.soa.csg.com"><!--WSDL created by Apache Axis version: 1.4 Built on Apr 22, 2006 (06:55:48 PDT)--><wsdl:types><schema elementFormDefault="qualified" targetNamespace="http://gd.soa.csg.com"><complexType name="queryEquipmentRequest"><sequence><element maxOccurs="1" minOccurs="0" name="id" type="xsd:string"/></sequence></complexType><element name="queryEquipmentRequest" type="impl:queryEquipmentRequest"/><complexType name="queryEquipmentResponse"><sequence><element name="replyCode" type="xsd:string"/></sequence></complexType><element name="queryEquipmentResponse" type="impl:queryEquipmentResponse"/></schema></wsdl:types><wsdl:message name="queryEquipmentResponse"><wsdl:part element="impl:queryEquipmentResponse" name="queryEquipmentResponse"/></wsdl:message><wsdl:message name="queryEquipmentRequest"><wsdl:part element="impl:queryEquipmentRequest" name="queryEquipmentRequest"/></wsdl:message><wsdl:portType name="QueryEquipment"><wsdl:operation name="queryEquipment" parameterOrder="queryEquipmentRequest"><wsdl:input message="impl:queryEquipmentRequest" name="queryEquipmentRequest"/><wsdl:output message="impl:queryEquipmentResponse" name="queryEquipmentResponse"/></wsdl:operation></wsdl:portType><wsdl:binding name="QueryEquipmentSoapBinding" type="impl:QueryEquipment"><wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/><wsdl:operation name="queryEquipment"><wsdlsoap:operation soapAction="http://gd.soa.csg.com/queryEquipment"/><wsdl:input name="queryEquipmentRequest"><wsdlsoap:body use="literal"/></wsdl:input><wsdl:output name="queryEquipmentResponse"><wsdlsoap:body use="literal"/></wsdl:output></wsdl:operation></wsdl:binding><wsdl:service name="QueryEquipment"><wsdl:port binding="impl:QueryEquipmentSoapBinding" name="QueryEquipment"><wsdlsoap:address location="http://127.0.0.1:8400/webServiceTest/services/QueryEquipment"/></wsdl:port></wsdl:service></wsdl:definitions>

RPCServiceClient调用webservice传递WebParam参数

org.apache.axis2.AxisFault: Unmarshalling Error: unexpected element (uri:"", local:"arg0"). Expected elements .....

C# WebService在接收到带参数的接口调用时自动将加密的参数解密

我的WebService的所有接口调用的参数都是加密过的,而且有接口函数。我在想有没有什么办法,在WebService接收到接口调用请求时,自动将参数解密,而不需要我每个函数内写解密?????? 我暂时没有C币了,有一定奉上

ajax带参数调用webService时的发送数据问题

![图片说明](https://img-ask.csdn.net/upload/201510/16/1444957034_225737.png) 如图,ajax带参数调用webService时的发送数据时为什么是 var poststr = "name=" + $("text1").value;而不是 var poststr = $("text1").val![图片说明](https://img-ask.csdn.net/upload/201510/16/1444957266_190435.png)ue

Android用ksoap2调用Webservice怎么传递List集合参数?

最近用到ksoap2调用Webservice获取数据,需要传递一些参数过去,除了基本类型的参数,还有List集合参数,各种试都报错,求教怎么传递List集合参数?

PHP调用webservice,一直传不了参数,请大家帮我查查。

------------------------------以下是实现的接口------------------------------------- 访问地址: http://172.16.218.116:7001/ wtmis/ws/bzjdService 接口: String queryProgress(String userCode); 参数:userCode:用户申请号 返回:json字符串,格式为:{"result":true,"data":"营业处挂表"} 其中result:表示执行是否成功 true:成功 false:失败 当result=true时,data为报装流程进度节点 当result=false时,data为“查询错误” 当未查询到信息时返回:{"result":true,"data":"未查询到复合条件的记录"} -------------------------------------------------------------------------------- 这是我写的php代码 <?php header("content-type:text/html;charset=utf-8"); try { //$client = new SoapClient("HelloService.wsdl",array('encoding'=>'UTF-8')); $client = new SoapClient("http://172.16.218.116:7001/wtmis/ws/bzjdService?wsdl",array('encoding'=>'UTF-8')); var_dump($client->__getFunctions()); print("<br/>"); var_dump($client->__getTypes()); print("<br/>"); $parm1 = "6215004318"; $param = array("userCode" => $parm1); $arr = $client->queryProgress($param); print_r($arr); } catch (SOAPFault $e) { print $e; } ?> 结果: array(1) { [0]=> string(62) "queryProgressResponse queryProgress(queryProgress $parameters)" } array(2) { [0]=> string(38) "struct queryProgress { string arg0; }" [1]=> string(48) "struct queryProgressResponse { string return; }" } stdClass Object ( [return] => {"data":"未查询到复合条件的记录","result":true} ) 一直显示未查询到复合条件的记录。参数一直还没有带入进去。请各位帮忙解决。 如果解决了,怎么显示状态参数。

IOS 调用C#写的Webservice ,传递的参数到Webservice取出的值为NULL

问题描述:IOS 调用C#写的Webservice ,传递的参数到Webservice取出的值为NULL,传递前在IOS里测试能取到值,麻烦用过这块的帮我看一下,已困扰我两天 啦~~哈哈 代码: NSMutableString *tps=[NSMutableString stringWithString:@""]; //存储参数名称 NSMutableString *vps=[NSMutableString stringWithFormat:@""];//存储参数值 NSMutableString *ts=[NSMutableString stringWithFormat:@""];//组合字符串变量 NSMutableString *mreakString=[NSMutableString stringWithFormat:@""];//组合字符串变量 [mreakString appendString:@"<"]; [mreakString appendString:MethodName]; //方法名 [mreakString appendString:@" xmlns=\"http://tempuri.org/\">"]; //[ParametersKey count] for (int i = 0; i <[ParametersKey count]; i++) { tps = [ParametersKey objectAtIndex:i]; vps = [ParametersValue objectAtIndex:i]; [ts appendString:@"<"]; [ts appendString:@"cnono"];//参数名 [ts appendString:@">"]; [ts appendString:@"17"]; //参数值 (--- 17 传递到webservice为NULL值 ----) [ts appendString:@"</"]; [ts appendString:@"cnono"]; [ts appendString:@">"]; [mreakString appendString:ts]; } [mreakString appendString:@"</"]; [mreakString appendString:MethodName]; [mreakString appendString:@">"]; NSMutableString *soapMessage2=[NSMutableString stringWithFormat:@""];; [soapMessage2 appendString:@"</soap:Envelope>"]; 生成的协议字符串为: requestData-----><?xml version="1.0" encoding="utf-8"?> <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; xmlns:xsd="http://www.w3.org/2001/XMLSchema"; xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/";> <soap:Body > <getSelectData xmlns="http://tempuri.org/";/> </soap:Body> </soap:Envelope> <deleteCargoInfo xmlns="http://tempuri.org/";> <cnono>17</cnono> </deleteCargoInfo> </soap:Envelope> 服务器返回的串为: <?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; xmlns:xsd="http://www.w3.org/2001/XMLSchema";><soap:Body><deleteCargoInfoResponse xmlns="http://tempuri.org/";><deleteCargoInfoResult>1:webservicer return:Sql=delete from C where Cno=,param=</deleteCargoInfoResult></deleteCargoInfoResponse></soap:Body></soap:Envelope>

java使用axis调用.net的webservice时如何传数组?

请问java使用axis调用.net的webservice时如何传数组? 该数组类型是String。 比如我可以正常的传输一个String类型的数值: call.addParameter(new javax.xml.namespace.QName("K2WFWebservice", "proFullName"), org.apache.axis.encoding.XMLType.XSD_STRING, String.class, javax.xml.rpc.ParameterMode.IN); 但如果传数组类型的时候怎么写??

webservice 带结构体参数的函数调用

各位大神,小弟刚接触websevice 我在webservice中写了一个带结构体参数的函数。 再在客户端定义了一个结构体,并以此结构体作为参数,调用webservice中的函数。 。程序报错![图片说明](https://img-ask.csdn.net/upload/201601/05/1451958926_863018.png) 但当传入其他类型的参数是没有问题的。

请问sql server如何调用webservice

sql server如何调用webservice: webservice中的函数中,参数为string类型,返回值为datatable,sql server怎么调用这个webservice

axis调用webservice报参数为空的问题

axis调用无参数的接口可以,但是一但有参数就出错 错误信息大致是:参数为空,但是我传的值打印出来是有值的。下面附上代码,大佬帮忙看看!谢谢 PS:大致的错误我明白了,这个链接需要两个参数一个data 一个GUID 但是wsdl文件里只有一个data参数!!所以这个GUID只能拼接上去,axis可以拼接吗?在哪个地方拼接 public static String MethodsGeneral(String url,String methods, Map<String, Object> params,String str) { String GUID="7b33dd14-b183-4d1e-8c96-04baf421498f"; String result=""; try{ String namespace ="http://tempuri.org/"; String soapActionUI = "http://tempuri.org/"+methods; String endpoint = url; Service service = new Service(); Call call = (Call)service.createCall(); call.setTargetEndpointAddress(new java.net.URL(endpoint)); call.setUseSOAPAction(true); call.setSOAPActionURI(soapActionUI); call.setOperationName(new QName(namespace,methods)); call.addParameter(new QName(namespace,"data"),org.apache.axis.Constants.XSD_STRING,javax.xml.rpc.ParameterMode.IN); call.addParameter(new QName(namespace,"GUID"),org.apache.axis.Constants.XSD_STRING,javax.xml.rpc.ParameterMode.IN); call.setReturnType(org.apache.axis.Constants.XSD_STRING); JSONObject jsonObject = new JSONObject(params); HashMap<String, String> allParam = new HashMap(); String beforeEnc = jsonObject.toString(); String cipherInfo = null; try { cipherInfo = AESUtil.encrypt(beforeEnc); } catch (Exception e) { e.printStackTrace(); } // 把加密后的字符串转化为16进制 String temp = StringUtil.str2HexStr(cipherInfo); //访问的方法名 System.out.println(temp); System.out.println(GUID); result = (String)call.invoke(new Object[]{temp,GUID}); }catch(Exception e){ e.printStackTrace(); System.out.println("调用webservice失败!"); } //將result字符串解析成要用的字符串 return result; } 以下是错误信息:AxisFault faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server faultSubcode: faultString: System.Web.Services.Protocols.SoapException: 服务器无法处理请求。 ---&gt; System.NullReferenceException: 未将对象引用设置到对象的实例。 在 Fuli.WebService.BaseWebService.AESEncrypt(String toEncrypt) 位置 D:\花汇购项目\Backend\Fuli.WebService\BaseWebService.cs:行号 426 在 Fuli.WebService.BaseWebService.GetExceptionReturnInfo(String exMessage) 位置 D:\花汇购项目\Backend\Fuli.WebService\BaseWebService.cs:行号 311 在 Fuli.WebService.UserWebService.GetAddresslistByUsername(String data) 位置 D:\花汇购项目\Backend\Fuli.WebService\UserWebService.asmx.cs:行号 689 --- 内部异常堆栈跟踪的结尾 --- faultActor: faultNode: faultDetail:

java远程调用.net webservice服务,服务端接收到了请求,但是接收到参数的为null

我用java远程调用.net webservice服务,服务端接收到了请求,但是服务端接收到参数的为null呢? public String callServiceEsbGFY(BsServiceDict bsdVo, String custIdValue, Map<String, Object> servParam) throws SysException, AppException { //System.out.println("servParam"+servParam.toString()); String retMsg = null; String serviveCode = (String) servParam.get("code"); servParam.remove("code"); //String soapActionURI = "http://tempuri.org/selectVIN"; //处理入参 String str="<?xml version=\"1.0\" encoding=\"gb2312\"?><rows><row "; Set<String> keys = servParam.keySet(); if(keys != null) { Iterator<String> iterator = keys.iterator(); while(iterator.hasNext()) { String key =iterator.next(); str=str+key+"="+"\""+servParam.get(key)+"\""+" "; } str=str+"></row></rows>"; } String endpoint =bsdVo.getServiceAddress(); String methodStr = bsdVo.getMethodName(); String input = bsdVo.getInParam(); try { input=input.replace(Constants.STRING_CHARACTER_GFY, str); //用户密码替换 String password = ToolUtil.MD5Encrept(Constants.STRING_USERPASSWORD_INFO, Constants.INTEGER_FORMD5_32); input=input.replace(Constants.STRING_USERPASSWORD_GFY, password); //当前时间替换 Date date = new Date(); SimpleDateFormat df = new SimpleDateFormat("yyyyMMddHHmmss");//设置日期格式 String dateFormat = df.format(date); log.info("dateFormat@@@@@@"+dateFormat); input=input.replace(Constants.STRING_CREATETIMEINFO_GFY, dateFormat); /** *1、A = 变量用户MD5密钥值转为UTF8字符串 *2、B = 变量报文时间戳值转为UTF8字符串 *3、C = 变量业务逻辑 *3、D = A与B异或运算,运算时计算长度以A和B值中字符长度短的为准,将D的值转为BASE64字符串 **/ String baseInfo = ToolUtil.twoStringXor(password,dateFormat); log.info("baseInfo#######333 : "+baseInfo); //计算最后签名的值 String character = ToolUtil.changeToSHA(str,Constants.STRING_FORHASHCODE_256); String sign = ToolUtil.changeToSHA(character+baseInfo,Constants.STRING_FORHASHCODE_256); //将模板中的签名替换掉 input=input.replace(Constants.STRING_SIGNINPUT_GFY, sign); //替换调用接口code log.info("serviveCode$$$$$$$$$$$$"+serviveCode); input=input.replace(Constants.STRING_SERVICECODE_GFY, serviveCode); log.info("111111111111111111111111111111111111111111111111111111111111"); log.info("input=="+input); log.info("222222222222222222222222222222222222222222222222222222222222"); AxisProperties.setProperty("axis.socketSecureFactory", "org.apache.axis.components.net.SunFakeTrustSocketFactory"); org.apache.axis.client.Service service = new org.apache.axis.client.Service(); Call call = (Call) service.createCall(); String endpoint1 = "http://IPMCH.ESB.TopSchemaV2"; call.setTargetEndpointAddress (new java.net.URL(endpoint)); call.setOperationName(new QName( endpoint1 , methodStr)); call.setUseSOAPAction(true); call.setSOAPActionURI("http://IPMCH.ESB.TopSchemaV2/CallESB"); call.addParameter( "arg0", org.apache.axis.encoding.XMLType.XSD_STRING, javax.xml.rpc.ParameterMode.IN); call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING); retMsg = (String) call.invoke(new Object[] {input} ); } catch (Exception e) { retMsg = "10000"; e.printStackTrace(); throw new SysException("","XmlException:OrderReceive.buildOrderReceiveXML():"+e.getMessage(),e); } return retMsg; }

关于webService 客户端 调用 对象数组 问题

我自己写的一个服务端需要的参数是一个对象数组 比如 public String getAge(Student[] ss ) { return ss[0].getAge(); } 这种形式的, 但是在客户端调用的时候 服务端接收到的 ss 对象数组的长度都为1,里面的对象的值都为null,哪位 大神指导一下新人啊 **下面是客户端调用代码** public static void main(String [] args) throws ServiceException, MalformedURLException, RemoteException{ String nameSpace="http://impl.webservice"; String method="getAge"; Service service = new Service(); Call call=(Call)service.createCall(); call.setTargetEndpointAddress(new java.net.URL("http://localhost:8070/TEST/services/testMyService?wsdl")); call.setUseSOAPAction(true); Student[] ss=new Student[2]; Student s0=new Student(); s0.setAge("123"); s0.setName("57"); ss[0]=s0; Student s1=new Student(); s1.setAge("123"); s1.setName("213"); ss[1]=s1; QName qn =new QName(nameSpace,method); call.setOperationName(qn); call.registerTypeMapping(Student.class, qn, new org.apache.axis.encoding.ser.BeanSerializerFactory(Student.class, qn), new org.apache.axis.encoding.ser.BeanDeserializerFactory(Student.class, qn)); String ret = (String) call.invoke(new Object[] {ss}); System.out.println(ret); }

C# 怎么调用webservice实体类?

![图片说明](https://img-ask.csdn.net/upload/201706/22/1498123908_588791.png) 这个goods 是我c# model里我自己写的 然后那个方法是webservice调用过来的 要传递一个实体类 有没有大神知道怎么办、????

C# webservice调用时,报HTTP响应时发生错误。

浏览器输入地址,返回页面提示服务已经创建,但是在程序调用时会出现错误: System.ServiceModel.CommunicationException: 接收对 http://XXXX/Bank.svc 的 HTTP 响应时发生错误。这可能是由于服务终结点绑定未使用 HTTP 协议造成的。这还可能是由于服务器中止了 HTTP 请求上下文(可能由于服务关闭)所致。 ---> System.Net.WebException: 基础连接已经关闭: 接收时发生错误。 ---> System.IO.IOException: 无法从传输连接中读取数据: 远程主机强迫关闭了 一个现有的连接。 ---> System.Net.Sockets.SocketException: 远程主机强迫关闭了一个现有的连接。

在中国程序员是青春饭吗?

今年,我也32了 ,为了不给大家误导,咨询了猎头、圈内好友,以及年过35岁的几位老程序员……舍了老脸去揭人家伤疤……希望能给大家以帮助,记得帮我点赞哦。 目录: 你以为的人生 一次又一次的伤害 猎头界的真相 如何应对互联网行业的「中年危机」 一、你以为的人生 刚入行时,拿着傲人的工资,想着好好干,以为我们的人生是这样的: 等真到了那一天,你会发现,你的人生很可能是这样的: ...

程序员请照顾好自己,周末病魔差点一套带走我。

程序员在一个周末的时间,得了重病,差点当场去世,还好及时挽救回来了。

我以为我学懂了数据结构,直到看了这个导图才发现,我错了

数据结构与算法思维导图

String s = new String(" a ") 到底产生几个对象?

老生常谈的一个梗,到2020了还在争论,你们一天天的,哎哎哎,我不是针对你一个,我是说在座的各位都是人才! 上图红色的这3个箭头,对于通过new产生一个字符串(”宜春”)时,会先去常量池中查找是否已经有了”宜春”对象,如果没有则在常量池中创建一个此字符串对象,然后堆中再创建一个常量池中此”宜春”对象的拷贝对象。 也就是说准确答案是产生了一个或两个对象,如果常量池中原来没有 ”宜春” ,就是两个。...

技术大佬:我去,你写的 switch 语句也太老土了吧

昨天早上通过远程的方式 review 了两名新来同事的代码,大部分代码都写得很漂亮,严谨的同时注释也很到位,这令我非常满意。但当我看到他们当中有一个人写的 switch 语句时,还是忍不住破口大骂:“我擦,小王,你丫写的 switch 语句也太老土了吧!” 来看看小王写的代码吧,看完不要骂我装逼啊。 private static String createPlayer(PlayerTypes p...

Linux面试题(2020最新版)

文章目录Linux 概述什么是LinuxUnix和Linux有什么区别?什么是 Linux 内核?Linux的基本组件是什么?Linux 的体系结构BASH和DOS之间的基本区别是什么?Linux 开机启动过程?Linux系统缺省的运行级别?Linux 使用的进程间通信方式?Linux 有哪些系统日志文件?Linux系统安装多个桌面环境有帮助吗?什么是交换空间?什么是root帐户什么是LILO?什...

将一个接口响应时间从2s优化到 200ms以内的一个案例

一、背景 在开发联调阶段发现一个接口的响应时间特别长,经常超时,囧… 本文讲讲是如何定位到性能瓶颈以及修改的思路,将该接口从 2 s 左右优化到 200ms 以内 。 二、步骤 2.1 定位 定位性能瓶颈有两个思路,一个是通过工具去监控,一个是通过经验去猜想。 2.1.1 工具监控 就工具而言,推荐使用 arthas ,用到的是 trace 命令 具体安装步骤很简单,大家自行研究。 我的使用步骤是...

学历低,无法胜任工作,大佬告诉你应该怎么做

微信上收到一位读者小涛的留言,大致的意思是自己只有高中学历,经过培训后找到了一份工作,但很难胜任,考虑要不要辞职找一份他能力可以胜任的实习工作。下面是他留言的一部分内容: 二哥,我是 2016 年高中毕业的,考上了大学但没去成,主要是因为当时家里经济条件不太允许。 打工了三年后想学一门技术,就去培训了。培训的学校比较垃圾,现在非常后悔没去正规一点的机构培训。 去年 11 月份来北京找到了一份工...

JVM内存结构和Java内存模型别再傻傻分不清了

JVM内存结构和Java内存模型都是面试的热点问题,名字看感觉都差不多,网上有些博客也都把这两个概念混着用,实际上他们之间差别还是挺大的。 通俗点说,JVM内存结构是与JVM的内部存储结构相关,而Java内存模型是与多线程编程相关,本文针对这两个总是被混用的概念展开讲解。 JVM内存结构 JVM构成 说到JVM内存结构,就不会只是说内存结构的5个分区,而是会延展到整个JVM相关的问题,所以先了解下

和黑客斗争的 6 天!

互联网公司工作,很难避免不和黑客们打交道,我呆过的两家互联网公司,几乎每月每天每分钟都有黑客在公司网站上扫描。有的是寻找 Sql 注入的缺口,有的是寻找线上服务器可能存在的漏洞,大部分都...

Google 与微软的浏览器之争

浏览器再现“神仙打架”。整理 | 屠敏头图 | CSDN 下载自东方 IC出品 | CSDN(ID:CSDNnews)从 IE 到 Chrome,再从 Chrome 到 Edge,微软与...

讲一个程序员如何副业月赚三万的真实故事

loonggg读完需要3分钟速读仅需 1 分钟大家好,我是你们的校长。我之前讲过,这年头,只要肯动脑,肯行动,程序员凭借自己的技术,赚钱的方式还是有很多种的。仅仅靠在公司出卖自己的劳动时...

上班一个月,后悔当初着急入职的选择了

最近有个老铁,告诉我说,上班一个月,后悔当初着急入职现在公司了。他之前在美图做手机研发,今年美图那边今年也有一波组织优化调整,他是其中一个,在协商离职后,当时捉急找工作上班,因为有房贷供着,不能没有收入来源。所以匆忙选了一家公司,实际上是一个大型外包公司,主要派遣给其他手机厂商做外包项目。**当时承诺待遇还不错,所以就立马入职去上班了。但是后面入职后,发现薪酬待遇这块并不是HR所说那样,那个HR自...

女程序员,为什么比男程序员少???

昨天看到一档综艺节目,讨论了两个话题:(1)中国学生的数学成绩,平均下来看,会比国外好?为什么?(2)男生的数学成绩,平均下来看,会比女生好?为什么?同时,我又联想到了一个技术圈经常讨...

搜狗输入法也在挑战国人的智商!

故事总是一个接着一个到来...上周写完《鲁大师已经彻底沦为一款垃圾流氓软件!》这篇文章之后,鲁大师的市场工作人员就找到了我,希望把这篇文章删除掉。经过一番沟通我先把这篇文章从公号中删除了...

85后蒋凡:28岁实现财务自由、34岁成为阿里万亿电商帝国双掌门,他的人生底层逻辑是什么?...

蒋凡是何许人也? 2017年12月27日,在入职4年时间里,蒋凡开挂般坐上了淘宝总裁位置。 为此,时任阿里CEO张勇在任命书中力赞: 蒋凡加入阿里,始终保持创业者的冲劲,有敏锐的...

总结了 150 余个神奇网站,你不来瞅瞅吗?

原博客再更新,可能就没了,之后将持续更新本篇博客。

副业收入是我做程序媛的3倍,工作外的B面人生是怎样的?

提到“程序员”,多数人脑海里首先想到的大约是:为人木讷、薪水超高、工作枯燥…… 然而,当离开工作岗位,撕去层层标签,脱下“程序员”这身外套,有的人生动又有趣,马上展现出了完全不同的A/B面人生! 不论是简单的爱好,还是正经的副业,他们都干得同样出色。偶尔,还能和程序员的特质结合,产生奇妙的“化学反应”。 @Charlotte:平日素颜示人,周末美妆博主 大家都以为程序媛也个个不修边幅,但我们也许...

MySQL数据库面试题(2020最新版)

文章目录数据库基础知识为什么要使用数据库什么是SQL?什么是MySQL?数据库三大范式是什么mysql有关权限的表都有哪几个MySQL的binlog有有几种录入格式?分别有什么区别?数据类型mysql有哪些数据类型引擎MySQL存储引擎MyISAM与InnoDB区别MyISAM索引与InnoDB索引的区别?InnoDB引擎的4大特性存储引擎选择索引什么是索引?索引有哪些优缺点?索引使用场景(重点)...

如果你是老板,你会不会踢了这样的员工?

有个好朋友ZS,是技术总监,昨天问我:“有一个老下属,跟了我很多年,做事勤勤恳恳,主动性也很好。但随着公司的发展,他的进步速度,跟不上团队的步伐了,有点...

我入职阿里后,才知道原来简历这么写

私下里,有不少读者问我:“二哥,如何才能写出一份专业的技术简历呢?我总感觉自己写的简历太烂了,所以投了无数份,都石沉大海了。”说实话,我自己好多年没有写过简历了,但我认识的一个同行,他在阿里,给我说了一些他当年写简历的方法论,我感觉太牛逼了,实在是忍不住,就分享了出来,希望能够帮助到你。 01、简历的本质 作为简历的撰写者,你必须要搞清楚一点,简历的本质是什么,它就是为了来销售你的价值主张的。往深...

离职半年了,老东家又发 offer,回不回?

有小伙伴问松哥这个问题,他在上海某公司,在离职了几个月后,前公司的领导联系到他,希望他能够返聘回去,他很纠结要不要回去? 俗话说好马不吃回头草,但是这个小伙伴既然感到纠结了,我觉得至少说明了两个问题:1.曾经的公司还不错;2.现在的日子也不是很如意。否则应该就不会纠结了。 老实说,松哥之前也有过类似的经历,今天就来和小伙伴们聊聊回头草到底吃不吃。 首先一个基本观点,就是离职了也没必要和老东家弄的苦...

男生更看重女生的身材脸蛋,还是思想?

往往,我们看不进去大段大段的逻辑。深刻的哲理,往往短而精悍,一阵见血。问:产品经理挺漂亮的,有点心动,但不知道合不合得来。男生更看重女生的身材脸蛋,还是...

什么时候跳槽,为什么离职,你想好了么?

都是出来打工的,多为自己着想

程序员为什么千万不要瞎努力?

本文作者用对比非常鲜明的两个开发团队的故事,讲解了敏捷开发之道 —— 如果你的团队缺乏统一标准的环境,那么即使勤劳努力,不仅会极其耗时而且成果甚微,使用...

为什么程序员做外包会被瞧不起?

二哥,有个事想询问下您的意见,您觉得应届生值得去外包吗?公司虽然挺大的,中xx,但待遇感觉挺低,马上要报到,挺纠结的。

当HR压你价,说你只值7K,你该怎么回答?

当HR压你价,说你只值7K时,你可以流畅地回答,记住,是流畅,不能犹豫。 礼貌地说:“7K是吗?了解了。嗯~其实我对贵司的面试官印象很好。只不过,现在我的手头上已经有一份11K的offer。来面试,主要也是自己对贵司挺有兴趣的,所以过来看看……”(未完) 这段话主要是陪HR互诈的同时,从公司兴趣,公司职员印象上,都给予对方正面的肯定,既能提升HR的好感度,又能让谈判气氛融洽,为后面的发挥留足空间。...

面试:第十六章:Java中级开发(16k)

HashMap底层实现原理,红黑树,B+树,B树的结构原理 Spring的AOP和IOC是什么?它们常见的使用场景有哪些?Spring事务,事务的属性,传播行为,数据库隔离级别 Spring和SpringMVC,MyBatis以及SpringBoot的注解分别有哪些?SpringMVC的工作原理,SpringBoot框架的优点,MyBatis框架的优点 SpringCould组件有哪些,他们...

面试阿里p7,被按在地上摩擦,鬼知道我经历了什么?

面试阿里p7被问到的问题(当时我只知道第一个):@Conditional是做什么的?@Conditional多个条件是什么逻辑关系?条件判断在什么时候执...

终于懂了TCP和UDP协议区别

终于懂了TCP和UDP协议区别

立即提问
相关内容推荐