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

注意,上面的HelloAxis2是没有package的。Copy这个类的class文件,放到tomcat目录下的webapps的axis2的WEB-INF目录的pojo文件夹下。如果没有pojo这个目录就手动创建一个一个文件夹(例如:D:\learn_tool\Tomcat6.0\webapps\axis2\WEB-INF\pojo)。
然后在浏览器输入:http://localhost:8080/axis2/就可以看到,如下图:

点击Services的链接就可以看到我们手动发布的HelloAxis2了,或者是浏览器地址栏输入:http://localhost:8080/axis2/services/listServices
你就可以看到你刚才粘贴过去的这个WebService了。如下图所示:

点击HelloAxis2链接就可以看到wsdl文件的内容了。

下面讲解下为什么要将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的方法
复制上面的HelloAxis2的链接地址,然后带上方法名称和参数值即可测试调用是否成功。如下:
http://localhost:8080/axis2/services/HelloAxis2/sayHelloAxis2?name=jack会在控制台打印出:jacksay: Hello Axis2
http://localhost:8080/axis2/services/HelloAxis2这个是WebService的地址
/sayHello是方法名称,?name=jack是参数名称和值
如果代码中用的是不是打印语句,而是return,则在浏览器中输入上面的地址后,可以看到如下效果:

可以看到返回值,和方法名称。ns:sayHelloAxis2Response是方法名称,所有的方法名称后都会带上Response,后面的ns当然是当前方法所在的类的包名了,这里没有package就是默认的axis2的域名。
同样,getAge方法,也是一样的调用方法。http://localhost:8080/axis2/services/HelloAxis2/getAge?i=50
结果如下:

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

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