清爽版Java WebService客户端

许多WebService框架都需要许多依赖包,其实有更简单的做法:

  1. 获得WSDL文件(自己的或者别人的都行,只要是标准格式)
  2. 下载并解压apache-cxf(这里只是要用它的一个wsdl2java命令,运行时并不需要)
  3. 配置JAVA_HOME环境变量(cxf需要)
  4. 运行命令 wsdl2java -p com.yourpackage -client your.wsdl(本地文件或者网址,不支持带密码的网址,所以如果是带密码的,先通过浏览器下载到本地)
  5. 复制生成的java文件到你的项目中(这家伙很贴心的,连测试函数都替你生成了)
  6. 多说一点,如果你的web service需要密码,则需要在调用时多写几行代码而已

XXXXXXXPort port = ss.getXXXXXXXPort();
BindingProvider bp = (BindingProvider) port;
Map<String, Object> context = bp.getRequestContext();
context.put(BindingProvider.USERNAME_PROPERTY, “user1”);
context.put(BindingProvider.PASSWORD_PROPERTY, “pwd1”);

再啰嗦一点,运行时需要一个WSDL文件,这个文件最好直接打包到你的应用中,把原来的new URL(“file://your.wsdl”);

改为:XXXXXXXX.class.getClassLoader().getResource(“your.wsdl”),

当然,如果生成Java文件时用的不是本地WSDL文件,而是URL,可以忽略这一步,但是如果是通过密码才能访问的WSDL,用URL是不行的,只能用文件。

至此,一个绝对清爽的WEB service客户端完成。无需第三方依赖。