WebService是一种以xml数据格式,soap协议等技术为基础的应用程序模型。通过网络访问满足用户特定需求。下面从两方面展示WebService应用:
此应用使用了Axis2技术框架。Axis2是Apache下的一个WebService引擎的java实现。从官网http://axis.apache.org/axis2/java/core/上下载axis2-1.5.5-war.zip和axis2-1.5.5-bin.zip。其中前者是WebService的web服务器,后者包括一些工具,例子,类库。
一、构建WebService服务:
将解压axis2-1.5.5-war.zip后根目录中的axis2.war置于Tomcat的webapps下,启动Tomcat服务,在浏览器中地址栏输入http://192.168.1.174:8080/axis2/,若出现欢迎界面表示WebService服务器部署成功。接下来创建自己的WebService服务,新建类FirstService.java。内容如下:public class FirstService { public String getGreeting(String name) { return "hello, " + name; } public int getNumber() { return new java.util.Random().nextInt(1000); } }
将编译好的类文件FirstService.class置于tomcat_home/webapps/axis2/WEB-INF/pojo/下面( 若不存在pojo文件夹,则手动创建一个),在浏览器地址栏输入 http://192.168.1.174:8080/axis2/services/listServices就可以看到自定义的WebService服务了。
二、调用WebService服务:
1.将axis2-1.5.5-bin.zip解压,设置环境变量AXIS2_HOME为axis2的安装根目录;
2.在命令行窗口中定位到axis2的安装目录下的bin目录;
3.获取wsdl文件地址:在“一”中的服务列表中点击FirstService链接,会产生wsdl描述文件,复制地址栏中的地址;
4.在命令行中输入wsdl2java -uri http://192.168.1.174:8080/axis2/services/FirstService?wsdl -p service -s -o src,其中-p为产生类的包名,-s为产生同步类型代码,-o为输出目录名;
5.执行命令后会在bin目录下产生一个叫src的文件夹,里面就是FirstService这个服务的客户端类FirstServiceStub.java;
6.构建自己的应用程序,通过5中的客户端类来调用WebService服务。程序代码:public class TestClient { public static void main(String[] args) throws Exception { //FirstService FirstServiceStub stub = new FirstServiceStub(); FirstServiceStub.GetGreeting gg = new FirstServiceStub.GetGreeting(); gg.setName("Adams"); System.out.println(stub.getGreeting(gg).get_return()); System.out.println(stub.getNumber().get_return()); } }
输出:
hello, Adams
467
调用成功。
调用远程的WebService服务也一样,获取到wsdl地址,用wsdl2java命令产生客户端类即可。