Web service学习总结

来源:互联网 发布:caffe softmax loss 编辑:程序博客网 时间:2024/05/16 01:05

我的环境:

Eclipse Java EE IDE for Web Developers Neon.3 Release (4.6.3),Java 1.8.0_65 64-bit,Tomcat 8.0.44,Axis2-1.7.5。

环境配置

  1. Java环境:
    下载JDK,将文件安装到自己想要的目录,然后进行环境变量的配置。
    右键点击我的电脑->属性->高级系统设置->高级选项卡->环境变量。如果想单独给某个用户添加变量,就在上面的用户变量里操作,如果不知道这是什么意思,就在下面的系统变量里操作。首先点击新建,变量名JAVA_HOME,变量值为jdk的安装目录,如D:\Software\JAVA\jdk。然后找到classpath,如果没有就新建一个,在最前面添加.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar;,最后找到path变量(没有就换电脑吧),添加%JAVA_HOME%\bin。到这里Java环境就配置完了,打开cmd窗口,输入java回车,看看是否正常,再输入javac回车,测试是否正常。

  2. Tomcat
    下载Tomcat,我下载的是tomcat8.0.44 core 64-bit Windows zip,安装到自己想要的目录,然后配置环境变量,还是我的电脑->属性->高级系统设置->高级选项卡->环境变量,新建变量CATALINA_HOME,变量值为tomcat的安装目录,如D:\Software\apache-tomcat-8.0.44,接着在path里新建一条,值为D:\Software\apache-tomcat-8.0.44\bin。在cmd窗口里输入startup命令测试是否配置成功。接下来打开eclipse,依次打开Window->Preferences->Server->Runtime Environments,点击Add,选择Apache->Apache Tomcat v8.0,点击next,在Tomcat installation directory处点击Browse,选择你的tomcat安装目录,然后点击finish。这样eclipse就配置完了。

  3. Axis2
    下载Axis2,在这个页面里下载Binary distribution(axis2-1.7.5-bin.zip) ,WAR distribution(axis2-1.7.5-war.zip),Service Archive plugin for Eclipse(axis2-eclipse-service-plugin-1.7.5.zip)和Code Generator plugin for Eclipse (axis2-eclipse-codegen-plugin-1.7.5.zip)。首先将war的压缩包解压,将里面的.war文件复制到tomcat安装目录的webapps目录下,这样启动tomcat后就会自动在这个目录生成一个axis2文件夹,在浏览器里输入http://localhost:8080/axis2,显示如下画面就代表成功。
    Tomcat Axis2浏览器界面

将service-plugin和codegen-plugin两个压缩包解压,将里面的.jar文件复制到eclipse安装目录下的dropins文件夹中。重启eclipse,点击File->New->Other,看到下图中的Axis2 Wizards就成功了。eclipse Axis插件截图

到此环境配置完成,接下来正式进入web Service的部分。

Web Service开发

一言以蔽之,WebService是一种跨编程语言和跨操作系统平台的远程调用技术。这里不做过多的介绍。
WebService的发布有两种方式,一种是直接利用Java提供的jws库,另一种是利用Axis2。首先说用jws的方式。
新建Java项目,在src中新建一个包,再新建一个Class,结构如下图所示:
项目结构图

在TestService类中写两个简单的方法:conbine和hello,代码如下:

package testservice;import javax.jws.WebService; import javax.xml.ws.Endpoint; @WebServicepublic class TestService {    public String combine(String first,String last) {        return first+last;    }    public String hello(String name) {        return "Hello,"+name;    }    public static void main(String[] args) {        // TODO Auto-generated method stub        Endpoint.publish("http://localhost:9001/Service/Test",new TestService());        System.out.println("Publish Success~");    }}

记得要在类的上面加上@WebService,这是声明要将类发布成WebService。

接下来用jdk提供的wsimport工具可以自动为我们生成client可以调用的类。
输入命令wsimport -s path -p package -keep url?wsdl,这里的-s表示生成的类的输出目录,在本例中是D:\WorkSpace\Java\BlogTest\src,-p表示输出的包名,在本例中是testclient,-keep是你在代码中用到的发布地址,在本例中是http://localhost:9001/Service/Test。执行完毕后刷新一下项目,会发现多了一个包testclient,包中有很多自动生成的类。其中比较重要的是TestService和TestServiceService这两个。如下图所示:
这里写图片描述
现在新建一个Class,利用自动生成的类调用WebService的接口。代码如下:

package testclient;public class TestClient {    public static void main(String[] args) {        // TODO Auto-generated method stub        TestService test = new TestServiceService().getTestServicePort();        String response1 = test.combine("lalala", "hahaha");        String response2 = test.hello("小明");        System.out.println(response1);        System.out.println(response2);    }}

运行后可以看到返回的结果。这样就完成了利用jws发布WebService和调用的简单例子。下一次讲利用Axis2开发SebService的方法。

原创粉丝点击