一、单参数
/** * 测试2 * * @param statistic * @param userId * @return */ public static String queryAvailableAmt() { try { targetEPR = new EndpointReference("http://192.168.10.227/ebsService/services/ebsService?wsdl"); // 创建request SOAP包 OMFactory fac = OMAbstractFactory.getOMFactory(); // OMNamespace指定此SOAP文档名称空间 OMNamespace om = fac.createOMNamespace("http://service.eee.shun.com", "client"); // 创建元素,并指定其在om指代的名称空间中,元素名必须跟services.xml重大operation的name相同 OMElement method = fac.createOMElement("queryAvailableAmt", om); //下面创建的是参数对数,对应于@WebParam(name = "name") //由于@WebParam没有指定targetNamespace,所以下面创建name参数时,用了null,否则你得赋一个namespace给它 OMElement nameElement1 = fac.createOMElement("p_dividend_date", null); nameElement1.addChild(fac.createOMText(nameElement1, "2013-01-04")); OMElement nameElement2 = fac.createOMElement("p_company_code", null); nameElement2.addChild(fac.createOMText(nameElement2, "801000")); OMElement nameElement3 = fac.createOMElement("p_user_name", null); nameElement3.addChild(fac.createOMText(nameElement3, "")); OMElement nameElement4 = fac.createOMElement("p_password", null); nameElement4.addChild(fac.createOMText(nameElement4, "")); method.addChild(nameElement1); method.addChild(nameElement2); method.addChild(nameElement3); method.addChild(nameElement4); Options options = new Options(); options.setTo(targetEPR); ServiceClient sender = new ServiceClient(); sender.setOptions(options); //下面的输出结果为<xsd:test xmlns:xsd="http://www.mycompany.com"><name>java</name></xsd:test> System.out.println(method.toString()); //发送并得到结果,至此,调用成功,并得到了结果 OMElement result = sender.sendReceive(method); String filePath = "E:\\queryAvailableAmt.xml"; writeToFile(filePath, result); } catch (Exception e) { e.printStackTrace(); } return null; }
二、传送OMElement参数
/** * 测试1 * * @param statistic * @param userId * @return */ public static String sendDataDfzwByOMElement() { targetEPR = new EndpointReference("http://192.168.10.227/ebsService/services/ebsService?wsdl"); // 创建request SOAP包 OMFactory fac = OMAbstractFactory.getOMFactory(); // OMNamespace指定此SOAP文档名称空间 OMNamespace om = fac.createOMNamespace("http://service.eee.shun.com", "client"); // 创建元素,并指定其在om指代的名称空间中,元素名必须跟services.xml重大operation的name相同 OMElement method = fac.createOMElement("senddividendstrategy", om); OMElement root; OMElement svsListOmElement; List<Senddividendstrategy> svsList = new ArrayList<Senddividendstrategy>(); try { Senddividendstrategy s = null; for (int i = 0; i < 10; i++) { s = new Senddividendstrategy(); s.setDividend_date("2013-01-04"); s.setCompany_code("2"); s.setEquity_note_number("3"); s.setDividend_line_number(Long.valueOf(4)); s.setAssign_type_code("5"); s.setAssign_source("6"); s.setSegment3("7"); s.setAmount(Long.valueOf(8)); s.setCash_amount(Long.valueOf(9)); s.setCash_proportion(Long.valueOf(10)); s.setCash_person_proportion(Long.valueOf(11)); s.setCapital_source("12"); s.setCapital_amount(Long.valueOf(13)); s.setCapital_proportion(Long.valueOf(14)); s.setCapital_person_proportion(Long.valueOf(15)); s.setEquity_category("16"); s.setEquity_properties("17"); s.setReduce_tax_amount(Long.valueOf(18)); s.setStart_date("2013-01-04"); s.setManager_type("20"); s.setProcess_startus("21"); s.setData_status("22"); svsList.add(s); } root = fac.createOMElement("root", null); svsListOmElement = BeanUtil.getOMElement(new QName("sparams"), svsList.toArray(), new QName("sparam"), false, null); root.addChild(svsListOmElement); method.addChild(root); Options options = new Options(); options.setTo(targetEPR); ServiceClient sender = new ServiceClient(); sender.setOptions(options); // 发出request SOAP // 同时将得到的远端由senddividendstrategy方法返回的信息保存到result // 通过services.xml能准确找到senddividendstrategy方法所在的文件 OMElement ome = sender.sendReceive(method); String filePath = "E:\\senddividendstrategy.xml"; writeToFile(filePath, ome); } catch (Exception e) { e.printStackTrace(); } return null; }
相关推荐
本方法是用axis1.4技术,实现java客户端调用webservice。已经可实现过可行的,如果不行可加我QQ号302633进行详细解析。
本案例实现使用Axis2生成.arr包发布WebService服务,并使用Axis2生成客户端代码方式调用WebService
java axis客户端调用webservice,可应用于ofbiz框架。 解决网络上共享代码两次调用后会出现timeout的BUG
axis2客户端调用webService接口需要用的jar包,在一次调接口中遇到的问题,亲测可用(整理成了比较精简的jar包)
Java Axis 直接调用webservice 接口工具类, 无需根据wsdl编译客户端,需要axis相关包,测试使用axis 1.4, 附demo引入axis包后直接可以测试;
springboot+webservice搭建webservice服务端及使用java客户端两种方式进行调用webservice接口
Android 利用axis2 调用webservice 包含j2ee服务端代码和Android客户端代码 代码实现包含 List,map ,对象传递
axis2客户端调用axis1服务接口 调用方式 使用RPC方式调用WebService,为了防止冲突可以增加 // 与weblogic的lib冲突配置 System.setProperty("javax.xml.stream.XMLInputFactory", ...
使用axis2创建webservice步骤以及客户端调用service服务代码,如何编写和发布WebService,如何使用services.xml配置文件发布,如何用Java实现调用WebService的客户端程序等等
javas客户端使用axis2调用webservice接口完整demo
用AXIS2作为客户端调用webService的demo:亲测可用,eclipse工程java项目包含完整代码和完整jar包, 只要用eclipse导入项目即可,运行控制台显示success或者false字符串,说明OK。
当利用axis2组建javawebservice时,客户端调用webservice必须引用到的jar文件
客户端用axis调用webservice实例 里面包含所需的jar包,希望对大家有用(不好意思,赚点积分啊)
用AXIS2作为客户端调用webService的demo:本人亲测可用,eclipse工程java项目包含完整代码和完整jar包, 只要用eclipse导入项目即可,运行控制台显示success或者false字符串,说明OK。
包括axis2程序包官方下载地址(有点大,没法上传)安装及配置设置,并又客户端代码示例(本人项目中的代码截取)
axis2作为服务端或客户端,发布webservice或者调用webservice所需的最少jar包。
之前webservice客户端调用,使用RPC客戶端接口调用方法,但发现此种调用方式针对携参方式并不适用。最后经过多种方式测试选择了OMFactory......调用。经测试好用
Axis2教程和java调用webservice的各种方法总结
java客户端程序调用webservice接口