java调用webService客户端的实现
哪们大侠给指点一下:我这里用apach 的axis2调用别人给的一个webService接口,调用方法如下
package com.cstc.service;
import java.net.URL;
import javax.xml.namespace.QName;
import javax.xml.rpc.ParameterMode;
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import org.apache.axis.encoding.XMLType;
import com.cstc.util.DESCoder;
public class QueryService {
public void queryPersonInfoByName(String idno,String cid){
System.out.println("idno+cid"+idno+" "+cid);
try{
String sKey = "CSgjjWeb";
String endpoint = "http://www.csgjj.com.cn:9001/QueryService.asmx?WSDL";
Service service = new Service();
Call call = (Call)service.createCall();
call.setTargetEndpointAddress(new URL(endpoint));
call.setOperationName(new QName("http://www.csgjj.com.cn:9001/WebService", "QueryPersonalInfo"));
call.addParameter(new QName("http://www.csgjj.com.cn:9001/WebService", "strPersonalName"), XMLType.XSD_STRING, ParameterMode.IN);
call.addParameter(new QName("http://www.csgjj.com.cn:9001/WebService","strIdno"), XMLType.XSD_STRING, ParameterMode.IN);
call.addParameter(new QName("http://www.csgjj.com.cn:9001/WebService","strCustomerID"), XMLType.XSD_STRING, ParameterMode.IN);
call.setUseSOAPAction(true);
call.setSOAPActionURI("http://www.csgjj.com.cn:9001/WebService/QueryPersonalInfo");
call.setReturnType(XMLType.XSD_STRING);
String strPersonalName = DESCoder.EncryptAsDoNet(new String("唐晓晖".getBytes("UTF-8")),sKey);
String strIdno = DESCoder.EncryptAsDoNet(idno,sKey);
String strCustomerID = DESCoder.EncryptAsDoNet(cid,sKey);
Object[] params = new Object[3];
params[0] = strPersonalName;
params[1] = strIdno;
params[2] = strCustomerID;
String res = (String)call.invoke(params);
String resDe = DESCoder.DecryptDoNet(res,sKey);
// System.out.println("Right: " + "IbN+8kIFNo/w2Q9GnBI82w==");
// System.out.println("Current: " + (String)params[0]);
System.out.println(resDe);
System.out.println("over queryService");
}catch (Exception ex){
System.out.println("Error: " + ex.getMessage());
}
System.out.println("over catch hou");
}
public static void main(String args[]){
QueryService qs =new QueryService();
qs.queryPersonInfoByName("430104197105050796","12580");
}
}
在这里用的main方法进行的调用,是可以查到想要的数据的。但是如果在servlet中进行调用返回的数据是空的,也没有任何错误提示,代码如下:
public class InsuranceServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
QueryService qs =new QueryService();
qs.queryPersonInfoByName("430104197105050796","12580");
System.out.println("over InsuranceServlet");
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}
这样查到的结果是空,这是为什么呀?没有错误提示,程序已经执行完毕,高手请指点,谢啦!
package com.cstc.service;
import java.net.URL;
import javax.xml.namespace.QName;
import javax.xml.rpc.ParameterMode;
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import org.apache.axis.encoding.XMLType;
import com.cstc.util.DESCoder;
public class QueryService {
public void queryPersonInfoByName(String idno,String cid){
System.out.println("idno+cid"+idno+" "+cid);
try{
String sKey = "CSgjjWeb";
String endpoint = "http://www.csgjj.com.cn:9001/QueryService.asmx?WSDL";
Service service = new Service();
Call call = (Call)service.createCall();
call.setTargetEndpointAddress(new URL(endpoint));
call.setOperationName(new QName("http://www.csgjj.com.cn:9001/WebService", "QueryPersonalInfo"));
call.addParameter(new QName("http://www.csgjj.com.cn:9001/WebService", "strPersonalName"), XMLType.XSD_STRING, ParameterMode.IN);
call.addParameter(new QName("http://www.csgjj.com.cn:9001/WebService","strIdno"), XMLType.XSD_STRING, ParameterMode.IN);
call.addParameter(new QName("http://www.csgjj.com.cn:9001/WebService","strCustomerID"), XMLType.XSD_STRING, ParameterMode.IN);
call.setUseSOAPAction(true);
call.setSOAPActionURI("http://www.csgjj.com.cn:9001/WebService/QueryPersonalInfo");
call.setReturnType(XMLType.XSD_STRING);
String strPersonalName = DESCoder.EncryptAsDoNet(new String("唐晓晖".getBytes("UTF-8")),sKey);
String strIdno = DESCoder.EncryptAsDoNet(idno,sKey);
String strCustomerID = DESCoder.EncryptAsDoNet(cid,sKey);
Object[] params = new Object[3];
params[0] = strPersonalName;
params[1] = strIdno;
params[2] = strCustomerID;
String res = (String)call.invoke(params);
String resDe = DESCoder.DecryptDoNet(res,sKey);
// System.out.println("Right: " + "IbN+8kIFNo/w2Q9GnBI82w==");
// System.out.println("Current: " + (String)params[0]);
System.out.println(resDe);
System.out.println("over queryService");
}catch (Exception ex){
System.out.println("Error: " + ex.getMessage());
}
System.out.println("over catch hou");
}
public static void main(String args[]){
QueryService qs =new QueryService();
qs.queryPersonInfoByName("430104197105050796","12580");
}
}
在这里用的main方法进行的调用,是可以查到想要的数据的。但是如果在servlet中进行调用返回的数据是空的,也没有任何错误提示,代码如下:
public class InsuranceServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
QueryService qs =new QueryService();
qs.queryPersonInfoByName("430104197105050796","12580");
System.out.println("over InsuranceServlet");
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}
这样查到的结果是空,这是为什么呀?没有错误提示,程序已经执行完毕,高手请指点,谢啦!
...全文
相关推荐
利用wsdl2java工具和SoapUI工具生成webservice的客户端代码 SpringBoot实现登陆验证调用.rar
利用wsdl2java工具和SoapUI工具生成webservice的客户端代码 Java实现登陆验证调用 压缩包里包括需要的所有文件,供需要的同学使用 1.apache-cxf-3.3.7 2.SoapUI 5.4.0-EB 3.生成代码的教程 4.获取service调用的Java代码
Java webservice cxf客户端调用demo和服务端
Java 调用webservice cxf客户端调用demo和服务端,包含jar包,服务端发布后直接用客户端调用
Java调用WebService(客户端)
java调用WebService的调用代码例子
JAVA调用Webservice接口Demo
JAVA调用Webservice接口Demo 直接上代码,下载下来可直接运行看到效果 1,IP查询 2,根据省份查城市
QT环境下Webservice服务调用,客户端
QT环境下Webservice服务调用,服务器端是在Java环境下


Web 开发
