• 二、Axis2的简单WebService示例


    1、编写一个简单的WebService的服务器端代码,代码如下:

    代码

    注意,上面的HelloWorldService是没有package的。Copy这个类的class文件,放到tomcat目录下的webapps的axis2的WEB-INF目录的pojo文件夹下。如果没有pojo这个目录就手动创建一个一个文件夹。然后在浏览器输入:http://localhost:8080/axis2/

    点击Services的链接就可以看到我们手动发布的HelloWorldService了,或者是浏览器地址栏输入:http://localhost:8080/axis2/services/listServices

    你就可以看到你刚才粘贴过去的这个WebService了。

    clip_image002

    点击链接就可以看到wsdl文件的内容了。内容很多,如果你看过axis1.x的介绍就知道wsdl文件的大致结构了。

    clip_image004

    下面讲解下为什么要将class放在pojo文件夹下。首先我们看看[tomcat_home]/webapps/axis2/WEB-INF/conf/axis2.xml

    该文件中有这样一行代码:

    <deployer extension=".class" directory="pojo" class="org.apache.axis2.deployment.POJODeployer"/>

    .class的后缀文件放在目录pojo目录下。

    2、测试这个WebService的方法

    复制上面的HelloWorldService的链接地址,然后带上方法名称和参数值即可测试调用是否成功。如下:

    http://localhost:8080/axis2/services/HelloWorldService/sayHello?name=jack

    http://localhost:8080/axis2/services/HelloWorldService这个是WebService的地址

    /sayHello是方法名称,?name=jack是参数名称和值

    在浏览器中输入上面的地址后,可以看到如下效果:

    clip_image006

    可以看到返回值,和方法名称。ns:sayHelloResponse是方法名称,所有的方法名称后都会带上Response,后面的ns当然是当前方法所在的类的包名了,这里没有package就是默认的axis2的域名。

    同样,getAge方法,也是一样的调用方法。

    http://localhost:8080/axis2/services/HelloWorldService/getAge?i=22

    结果如下:

    clip_image008

    3、下面我们看下客户端调用代码的编写,代码如下:

    代码

    如果你了解或是看过axis1.x的WebService,这里的客户端调用代码比较简单,有部分关键注释,这里就不多加赘述。值得注意的是axis2的WebService客户端调用的返回对象是一个Object的数组,这点和axis1.x有很大不同。我们一般拿数组的第一个值,转换强转即可。

  • 作者:hoojo
    出处:
    blog:http://blog.csdn.net/IBM_hoojo
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

版权所有,转载请注明出处 本文出自:
分享道版权所有,欢迎转载,转载请注明出处,谢谢
收藏
关注
评论
  • 相关阅读:
    Yii2 使用 Beanstalk 队列系统
    Yii2 注册表单验证规则 手机注册时候使用短信验证码
    Yii2 高级模板 多域名管理问题
    PHP生成缩略图,控制图片质量,支持.png .jpg .gif
    yii2-lock-form 也许这就是你想要的,阻止表单多次提交
    PHP日期与时间戳转换
    PHP/Yii2操作Cookie,常见问题以及注意事项
    对称加密,API加密
    yii2弹出层
    两种不同的Context
  • 原文地址:https://www.cnblogs.com/hoojo/p/1985172.html
  • Copyright © 2020-2023  润新知