原生java调用webservice的方法,不用生成客户端代码
2015年10月29日 16:46:59

阅读数:1455
  1. <span style="font-family: Arial, Helvetica, sans-serif;">package com.kingdee.eas.cp.trd.webservice.taskinter;</span>
<span style="font-family: Arial, Helvetica, sans-serif;">package com.kingdee.eas.cp.trd.webservice.taskinter;</span>
  1. import java.rmi.RemoteException;
  2. import javax.xml.namespace.QName;
  3. import javax.xml.rpc.ServiceException;
  4. import org.apache.axis.client.Call;
  5. import org.apache.axis.client.Service;
  6. import org.apache.axis.message.SOAPHeaderElement;
  7. import com.kingdee.bos.Context;
  8. import com.kingdee.bos.webservice.login.WSContext;
  9. public class TaskInterUtil
  10. {
  11. public static String getUserCreditFilesData(Context ctx,String userId)
  12. {
  13. try {
  14. Service s = new Service();
  15. Call call = (Call) s.createCall();
  16. call.setOperationName("login");
  17. call.setTargetEndpointAddress("http://10.0.55.5:6888/ormrpc/services/EASLogin?wsdl");
  18. call.setReturnType(new QName("urn:client", "WSContext"));
  19. call.setReturnClass(WSContext.class);
  20. call.setReturnQName(new QName("", "loginReturn"));
  21. call.setMaintainSession(true);
  22. String headerValue ;
  23. String headerNamePlace = "http://login.webservice.bos.kingdee.com";
  24. //                  WSContext result = ((WSContext) call.invoke(new Object[] { "sysWS","sysWS","eas","TESTSSC8", "l2",Integer.valueOf("2"),"BaseDB"}));
  25. WSContext result = ((WSContext) call.invoke(new Object[] { "sysWS","sysWS","eas","TESTSSC8", "l2",2}));
  26. String sessionid = result.getSessionId();
  27. System.out.println(sessionid);
  28. call.clearOperation();
  29. //call = (Call)  new Service().createCall();,不能创建一个新的call
  30. call.setOperationName("getUserCreditFilesData");
  31. //          call.setOperationName("createJob");
  32. call.setMaintainSession(true);
  33. call.setTargetEndpointAddress("http://10.0.55.5:6888/ormrpc/services/WSTaskInterFacede?wsdl");
  34. call.addHeader(new SOAPHeaderElement("http://login.webservice.bos.kingdee.com","SessionId", sessionid));
  35. //          boolean b =(Boolean) call.invoke(new Object[] { "111"});
  36. Object b = call.invoke(new Object[] { "bLXZIU9+SiuLKkJor2m9NhO33n8=", "", "", "", "", "", "", "10.0.55.5"});
  37. System.out.println("ssss");
  38. } catch (ServiceException e) {
  39. e.printStackTrace();
  40. } catch (RemoteException e) {
  41. e.printStackTrace();    }
  42. return "";
  43. }
  44. }
import java.rmi.RemoteException;

import javax.xml.namespace.QName;
import javax.xml.rpc.ServiceException; import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import org.apache.axis.message.SOAPHeaderElement; import com.kingdee.bos.Context;
import com.kingdee.bos.webservice.login.WSContext; public class TaskInterUtil
{
public static String getUserCreditFilesData(Context ctx,String userId)
{
try {
Service s = new Service();
Call call = (Call) s.createCall();
call.setOperationName("login");
call.setTargetEndpointAddress("http://10.0.55.5:6888/ormrpc/services/EASLogin?wsdl");
call.setReturnType(new QName("urn:client", "WSContext"));
call.setReturnClass(WSContext.class);
call.setReturnQName(new QName("", "loginReturn"));
call.setMaintainSession(true);
String headerValue ;
String headerNamePlace = "http://login.webservice.bos.kingdee.com";
// WSContext result = ((WSContext) call.invoke(new Object[] { "sysWS","sysWS","eas","TESTSSC8", "l2",Integer.valueOf("2"),"BaseDB"}));
WSContext result = ((WSContext) call.invoke(new Object[] { "sysWS","sysWS","eas","TESTSSC8", "l2",2}));
String sessionid = result.getSessionId();
System.out.println(sessionid);
call.clearOperation(); //call = (Call) new Service().createCall();,不能创建一个新的call call.setOperationName("getUserCreditFilesData");
// call.setOperationName("createJob");
call.setMaintainSession(true);
call.setTargetEndpointAddress("http://10.0.55.5:6888/ormrpc/services/WSTaskInterFacede?wsdl");
call.addHeader(new SOAPHeaderElement("http://login.webservice.bos.kingdee.com","SessionId", sessionid));
// boolean b =(Boolean) call.invoke(new Object[] { "111"});
Object b = call.invoke(new Object[] { "bLXZIU9+SiuLKkJor2m9NhO33n8=", "", "", "", "", "", "", "10.0.55.5"});
System.out.println("ssss");
} catch (ServiceException e) {
e.printStackTrace();
} catch (RemoteException e) {
e.printStackTrace(); } return "";
}
}

2.

  1. String result = null;
  2. try {
  3. Properties p = new Properties();
  4. String propertiesUrl = "com/kingdee/eas/fi/gl/client/propertie.properties";
  5. InputStream ins = VoucherEditUICTEx.class.getClassLoader().getResourceAsStream(propertiesUrl);
  6. p.load(ins);
  7. String showImageUrl = p.getProperty("showImageUrl");
  8. //直接引用远程的wsdl文件
  9. //以下都是套路
  10. Service service = new Service();
  11. Call call = (Call) service.createCall();
  12. call.setTargetEndpointAddress(showImageUrl);
  13. call.setOperationName("imageOutSrv");//WSDL里面描述的接口名称
  14. call.addParameter("inJsonString", org.apache.axis.encoding.XMLType.XSD_DATE, javax.xml.rpc.ParameterMode.IN);//接口的参数
  15. call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING);//设置返回类型
  16. //          companyNumber = "CWGX001";
  17. //          voucherPeriod = "2015-08";
  18. //          voucherTitle = "记字集团";
  19. //          voucherCode = "WK06-0001";
  20. String AppID = "EAS701";
  21. String Provider = "IMSSC";
  22. StringBuffer param = new StringBuffer();
  23. param.append("  {                   ");
  24. param.append("      \"Message\":{                   ");
  25. param.append("          \"Header\":{                    ");
  26. param.append("              \"AppID\":\""+AppID+"\",                    ");
  27. param.append("              \"Provider\":\""+Provider+"\"                   ");
  28. param.append("          },                  ");
  29. param.append("          \"Body\":{                  ");
  30. param.append("              \"ACTION_METHOD\":\"showImage\",                    ");
  31. param.append("              \"PARAMS\":{                    ");
  32. param.append("                  \"COMPANY_CODE\":\""+companyNumber+"\",                 ");
  33. param.append("                  \"VOUCHER_PERIOD\":\""+voucherPeriod+"\",                   ");
  34. param.append("                  \"VOUCHER_TITLE\":\""+voucherTitle+"\",                 ");
  35. param.append("                  \"VOUCHER_CODE\":\""+voucherCode+"\"                    ");
  36. param.append("              }                   ");
  37. param.append("          }                   ");
  38. param.append("      }                   ");
  39. param.append("  }                   ");
  40. result = (String)call.invoke(new Object[]{param.toString()});
  41. //给方法传递参数,并且调用方法
  42. System.out.println("result is "+result);
  43. } catch (Exception e1) {
  44. e1.printStackTrace();
  45. MsgBox.showInfo("EAS核算凭证影像调阅接口调用失败");
  46. SysUtil.abort();
  47. }
		String result = null;
try {
Properties p = new Properties();
String propertiesUrl = "com/kingdee/eas/fi/gl/client/propertie.properties";
InputStream ins = VoucherEditUICTEx.class.getClassLoader().getResourceAsStream(propertiesUrl);
p.load(ins); String showImageUrl = p.getProperty("showImageUrl");
//直接引用远程的wsdl文件
//以下都是套路
Service service = new Service();
Call call = (Call) service.createCall();
call.setTargetEndpointAddress(showImageUrl);
call.setOperationName("imageOutSrv");//WSDL里面描述的接口名称
call.addParameter("inJsonString", org.apache.axis.encoding.XMLType.XSD_DATE, javax.xml.rpc.ParameterMode.IN);//接口的参数
call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING);//设置返回类型 // companyNumber = "CWGX001";
// voucherPeriod = "2015-08";
// voucherTitle = "记字集团";
// voucherCode = "WK06-0001"; String AppID = "EAS701";
String Provider = "IMSSC"; StringBuffer param = new StringBuffer();
param.append(" { ");
param.append(" \"Message\":{ ");
param.append(" \"Header\":{ ");
param.append(" \"AppID\":\""+AppID+"\", ");
param.append(" \"Provider\":\""+Provider+"\" ");
param.append(" }, ");
param.append(" \"Body\":{ ");
param.append(" \"ACTION_METHOD\":\"showImage\", ");
param.append(" \"PARAMS\":{ ");
param.append(" \"COMPANY_CODE\":\""+companyNumber+"\", ");
param.append(" \"VOUCHER_PERIOD\":\""+voucherPeriod+"\", ");
param.append(" \"VOUCHER_TITLE\":\""+voucherTitle+"\", ");
param.append(" \"VOUCHER_CODE\":\""+voucherCode+"\" ");
param.append(" } ");
param.append(" } ");
param.append(" } ");
param.append(" } "); result = (String)call.invoke(new Object[]{param.toString()});
//给方法传递参数,并且调用方法
System.out.println("result is "+result);
} catch (Exception e1) {
e1.printStackTrace();
MsgBox.showInfo("EAS核算凭证影像调阅接口调用失败");
SysUtil.abort();
}

原生java调用webservice的方法,不用生成客户端代码的更多相关文章

  1. Java调用webservice接口方法

                             java调用webservice接口   webservice的 发布一般都是使用WSDL(web service descriptive langu ...

  2. java 使用CXF将wsdl文件生成客户端代码命令java调用第三方的webservice应用实例

    1.先下载cxf包https://download.csdn.net/download/suizhikuo/108112362.解压缩包,通过cmd命令进入到bin目录下(cd cxf\bin的路径) ...

  3. Java调用webservice接口方法(SOAP message、xfire、axis)

    webservice的 发布一般都是使用WSDL(web service descriptive language)文件的样式来发布的,在WSDL文件里面,包含这个webservice暴露在外面可供使 ...

  4. wsdl 生成 java 代码 java 使用CXF将wsdl文件生成客户端代码命令java调用第三方的webservice应用实例 推荐使用, 并且设置了 utf8

    推荐使用, 并且设置了 utf8 wsdl2java -p cn.smborderservice  -encoding utf-8 -d f:\logink\src -all -autoNameRes ...

  5. 【转】java调用webservice

    互联网上面有很多的免费webService服务,我们可以调用这些免费的WebService服务,将一些其他网站的内容信息集成到我们的Web应用中显示,下面就以获取天气预报数据和查询国内手机号码归属地为 ...

  6. java 调用webservice的各种方法总结

    java 调用webservice的各种方法总结 几种流行的开源WebService框架Axis1,Axis2,Xfire,CXF,JWS比较 方法一:创建基于JAX-WS的webservice(包括 ...

  7. Java调用WebService方法总结(9,end)--Http方式调用WebService

    Http方式调用WebService,直接发送soap消息到服务端,然后自己解析服务端返回的结果,这种方式比较简单粗暴,也很好用:soap消息可以通过SoapUI来生成,也很方便.文中所使用到的软件版 ...

  8. Java调用WebService方法总结(7)--CXF调用WebService

    CXF = Celtix + XFire,继承了Celtix和XFire两大开源项目的精华,是一个开源的,全功能的,容易使用的WebService框架.文中所使用到的软件版本:Java 1.8.0_1 ...

  9. Java调用WebService方法总结(5)--Axis2调用WebService

    Axis2是新一点Axis,基于新的体系结构进行了全新编写,有更强的灵活性并可扩展到新的体系结构.文中demo所使用到的软件版本:Java 1.8.0_191.Axis2 1.7.9. 1.准备 参考 ...

随机推荐

  1. golang prometheus包的使用

    prometheus包提供了用于实现监控代码的metric原型和用于注册metric的registry.子包(promhttp)允许通过HTTP来暴露注册的metric或将注册的metric推送到Pu ...

  2. ActiveMQ发布-订阅消息模式

    一.订阅杂志我们很多人都订过杂志,其过程很简单.只要告诉邮局我们所要订的杂志名.投递的地址,付了钱就OK.出版社定期会将出版的杂志交给邮局,邮局会根据订阅的列表,将杂志送达消费者手中.这样我们就可以看 ...

  3. springcloud-06-feign的使用

    在spring Cloud Netflix栈中,各个微服务都是以HTTP接口的形式暴露自身服务的,因此在调用远程服务时就必须使用HTTP客户端.我们可以使用JDK原生的URLConnection.Ap ...

  4. elasticsearch 导入基础数据并索引之 geo_shape

    我们看到的图形, 实际是由点来完成的, 有2种类型的格子模型可用于地理星座, 默认使用的是geoHash, 还有一种4叉树(quad trees), 也可用于 判断形状与索引的形状关系 1), int ...

  5. vue 分享知识点

    vue 分享模块清单 1.Vue 2.0之Vue实例和生命周期 2.vue 2.0之自定义指令 3.vue 2.0之观察者模式实现简单异步无限滚动 4.从JavaScript属性描述器剖析Vue.js ...

  6. 动态创建table表格页面出现undefined原因以及修改

    源代码: var html: if(lists) { html += '<a href="https://www.4001149114.com/NLJJ/member/sharecel ...

  7. [转]VS2012正则查找

    本文转自:http://blog.csdn.net/u013688451/article/details/52840325 工作中有时需要用到 正则查找,例如 想找 所有用到 某个数据库表的地方 st ...

  8. Magento2开发教程 - 如何向数据库添加新表

    Magento 2具有特殊的机制,允许你创建数据库表,修改现有的,甚至添加一些数据到他们(如安装数据,已被添加在模块安装). 这种机制允许这些变化可以在不同的设备之间传输. 关键的概念是,而不是做你能 ...

  9. IE浏览器TAB清空设置

    1.Regedit 2.HKEY_USERS——搜索NewTabPage 3.清空除了Default之外的所有东西 4.也可以添加NumRows——TAB的行数 可以参考:http://tieba.b ...

  10. 微信开发e.target.dataset取值undefined

    替换为: e.currentTarget.dataset.current