java调用webservice其实很简单,baidu一下一搜一大把,可是真正很好用的方法还是很少的,用IDE生成的话还参差不齐,生成的代码也不是很易读,调试起来也很不方便。
例如用myeclipse生成webservice client就只支持xfire不支持Axis,而且生成的类和代码非常多,管理起来很麻烦。
但是Intellij支持Axis而且生成的代码非常简洁,易于调用,很少有转型困难的情况,返回结果为List的情况会转成数组形式,这就比myeclipse生成的调用起来简单多了。
下面是利用intellij生成client的过程:
1.下载intellij
http://www.jetbrains.com/idea/
推荐一个intellij社区
http://www.intellij.org.cn/portal/
2.打开intellij,新建一个java工程
选择client,选择Axis实现。
3.进入工程后自动弹出生成界面,输入相关地址和信息,点击OK,生成客户端和demo代码。
4.调用代码:
try { URL url = new URL(serviceURL); QueryBillWSLocator locator = new QueryBillWSLocator(); QueryBillWSPortType service = locator.getQueryBillWSHttpPort(url); ((QueryBillWSHttpBindingStub) service).setUsername(webservice_name); ((QueryBillWSHttpBindingStub) service).setPassword(webservice_passwd); return service.queryUserFee(loginName, month); } catch (Exception ex) { logger.error("查询账单列表失败,用户:" + loginName); return null; }
5.所需jar包