2018-08-26 11:42题主

请教大神,如何使用Webbuilder 调用外部WebService服务?

我拿下面这个WSDL描述文件,来学习如何使用Webbuilder 调用外部WebService服务
中国基金查询WebService服务: http://www.webxml.com.cn/WebServices/ChinaOpenFundWS.asmx?wsdl 
采用java做的客户端访问代码如下:
    
public class Main {
public static void main(String[] args) {
// System.out.println("Hello World!");

//创建一个ChinaOpenFundWS工厂
ChinaOpenFundWS factory = new ChinaOpenFundWS();

//根据工厂创建一个ChinaOpenFundWSSoap对象
ChinaOpenFundWSSoap ChinaOpenFundWSSoap = factory.getChinaOpenFundWSSoap();

//调用WebService提供的getFundCodeNameString方法,查询开放基金代码与名称
ArrayOfString chinaOpenFundInfo = ChinaOpenFundWSSoap.getFundCodeNameString();
List<String> listChinaOpenFundInfo = chinaOpenFundInfo.getString();
//遍历中国开放式基金信息
int count = 1;
for (String strFundInfo : listChinaOpenFundInfo) {
System.out.println(count+"、 "+ strFundInfo);
count++ ;
}
}
}
这段代码执行的结果正确:
------------------------------------------------------------------------------------------
然后我使用IDEA把这个web工程,连同通过wsimport生成的所有客户端类文件,一起打包成 com.mytest.client.jar , 命令行窗口使用java -jar com.mytest.client.jar结果正常,然后我把jar包拷贝到了 webapps\wb\WEB-INF\lib 的目录下。
--------------------------------------------------------------------------------------------
接下来,重新启动tomcat服务器后再次以admin 登录,我建立了一个新xwl 模板文件,在这个文件module对应 serverMothod 属性中,填写 com.mytest.client.main ,我理解,这时候如果执行,是应该直接能调用到这个com.mytest.client.jar包的main 方法? 
但是此时报错:
 
   
2018-08-26 11:43#1
F12控制台信息如下:
2018-08-27 10:04#2
包名不是文件名,不要搞混淆,java中包名是类似通过package com.wb.common定义的
另外在ServerScript中可以直接调用java类,无需通过serverMethod,如:

2018-08-27 11:40#3
我的Main.class是未放在 com.test.client的包路径下,尽管我打包时,也把Main.class文件,拷贝到这个包里面:
ServerScirpt中,写下类似的WebService的客户端访问代码:
  
var factory = new com.test.client.ChinaOpenFundWS();
factory.getChinaOpenFundWSSoap().getOpenFundString("");
2018-09-03 09:29#4
可以使用,同常规方法实现没有区别
2018-09-21 07:39#5
xfire配置xml很方便

返回开发者社区