当前位置:编程学习 > JAVA >>

axis 远程访问WSDL问题,求大神指导

客户端代码如下:
String endpoint = url;
Service service = new Service();
Call call = (Call) service.createCall();
call.setTargetEndpointAddress(endpoint);
call.setOperationName("GETPAYMENTINFO");
call.addParameter("htbh",org.apache.axis.encoding.XMLType.XSD_STRING,javax.xml.rpc.ParameterMode.IN);
call.addParameter("bankcode",org.apache.axis.encoding.XMLType.XSD_STRING,javax.xml.rpc.ParameterMode.IN);
call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING);
call.setUseSOAPAction(true);
call.setSOAPActionURI("http://tempuri.org/GETPAYMENTINFO");
call.setProperty(Call.ENCODINGSTYLE_URI_PROPERTY,
     "http://tempuri.org/");
String htbh="201305210001";
String bankcode="C0001";
String result =  (String) call.invoke(new Object []{htbh,bankcode});
RetMsg = result;

从截获的报文来看,能正常访问的报文与上面方法生成的报文区别
<soap:Body>  //能正常的返回
<GETPAYMENTINFO xmlns="http://tempuri.org/">
<htbh>201305210001</htbh>
<bankcode>C0001</bankcode>
</GETPAYMENTINFO>
</soap:Body>

<soapenv:Body>  //JAVA方法运行后,截获到的。服务端无法取到传参
<GETPAYMENTINFO soapenv:encodingStyle="http://tempuri.org/">
<htbh xsi:type="xsd:string">201305210001</htbh>
<bankcode xsi:type="xsd:string">C0001</bankcode>
</GETPAYMENTINFO>

用报文模拟器试验了在 
<GETPAYMENTINFO soapenv:encodingStyle="http://tempuri.org/">
这段加 xmlns="http://tempuri.org/  就可以正常返回了

现在需要在程序中修改,需要调整哪个参数?


</soapenv:Body> JAVA  WSDL --------------------编程问答-------------------- 表示从来都是直接生成客户端代码的
补充:Java ,  Web 开发
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,