加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

webservice客户端调用方式

发布时间:2020-12-16 22:39:27 所属栏目:安全 来源:网络整理
导读:这一篇介绍客户端调用方式 方法1)手动写客户端代码 ???????????? 这里不做介绍了,可阅读我的博客:http://www.voidcn.com/article/p-atpbtmve-bgw.html方法2)脚本生成方式 ?????????? 配置环境变量:AXIS2_HOME???? C:UsersabcDownloadsaxis2-1.6.2-b

这一篇介绍客户端调用方式
方法1)手动写客户端代码

???????????? 这里不做介绍了,可阅读我的博客:http://www.voidcn.com/article/p-atpbtmve-bgw.html方法2)脚本生成方式

?????????? 配置环境变量:AXIS2_HOME???? C:UsersabcDownloadsaxis2-1.6.2-binaxis2-1.6.2

???????? ? path 增加 %AXIS2_HOME%bin

????????? cd? myaxis(项目所在的目录)。
????????? 执行:wsdl2java -uri http://localhost:9080/axis2/services/sayHello?wsdl -p ws-s -o myaxis
????????? -p参数指定了生成的Java类的包名
???????? -o参数指定了生成的一系列文件保存的根目录

???????? myaxis是我项目名称。

???????? 注意若这里出现了一个问题:生成的SayHelloStub.java报编译错 org.apache.axis2.client.Stub找不到

????? ? 需要引入axis2-1.6.2bin所有的jar即可。

??????? 编写客户端代码

[java]? view plain copy
  1. public?class?TestClient?{??
  2. ??
  3. ????/**?
  4. ?????*?@param?args?
  5. ?????*/??
  6. ????static?void?main(String[]?args)?{??
  7. ????????try?{??
  8. ????????????//首先创建实例,内部类,为每个方法创建一个内部类??
  9. ????????????SayHelloStub?shs=new?SayHelloStub();??
  10. ????????????SayHelloStub.SayHello?sh=new?SayHelloStub.SayHello();??
  11. ????????????sh.setName("大兵哥");??
  12. ????????????System.out.println(shs.sayHello(sh).get_return());??
  13. ????????}?catch?(Exception?e)?{??
  14. ????????????e.printStackTrace();??
  15. ????????}??
  16. ????}??
  17. ??
  18. }??
方法3)eclipse自动生成客户端
?? ? ? ? ? new Web Service Client 。输入wsdl地址,自动生成stub,proxy一些文件。
?? ? ????? 再书写客户端代码。此方法比较方便。但建议初学者首先用方法1。

??????????

一路next即可。这样会在你项目中生成

一系列java文件


??????????? 一般生成五个文件,要是缺少了,和你services.xml中服务名字有一定的关系。我也设置好几个才可以了。(我的设置为ttt)

客户端测试代码如下: ??

copy
    import?java.rmi.RemoteException;??
  1. import?org.apache.axis2.AxisFault;??
  2. import?bingbing.TttPortTypeProxy;??
  3. ?????????????????//代理对象??
  4. ?????????????????TttPortTypeProxy?proxy=new?TttPortTypeProxy();??
  5. ????????????System.out.println(proxy.sayHello("大兵哥"));??
  6. catch?(RemoteException?e)?{??
  7. ?????????????
  8. ????}??
  9. }??
代码很简单。不是吗?

方法4)下载eclipse axis的client,server插件

下载eclipse axis2插件
http://mirror.bjtu.edu.cn/apache/axis/axis2/java/core/1.6.2/

我这里下载的是1.6.2/版本的axis2-eclipse-codegen-wizard.zip和axis2-eclipse-service-archiver-wizard.zip
(至于安装到eclipse我不做累赘说明了。可参考网上资料)


安装成功后选择Axis2 Code Generator

然后选择工程

下面是自动生成的代码


客户端测试代码:

copy
    import?bingbing.SayHello;??
  1. import?bingbing.TttStub;??
  2. class?TestClient?{??
  3. ????/**?
  4. ?????*?@param?args?
  5. ?????*/??
  6. ????void?main(String[]?args)?{??
  7. ????????try?{??
  8. ????????????TttStub?stub=new?TttStub();??
  9. ????????????SayHello?hello=new?SayHello();??
  10. ????????????hello.setName("大兵哥");??
  11. ????????????System.out.println(stub.sayHello(hello).get_return());??
  12. }??

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读