我的环境:
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。
环境配置
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回车,测试是否正常。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就配置完了。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,显示如下画面就代表成功。
将service-plugin和codegen-plugin两个压缩包解压,将里面的.jar
文件复制到eclipse安装目录下的dropins文件夹中。重启eclipse,点击File->New->Other,看到下图中的Axis2 Wizards就成功了。
到此环境配置完成,接下来正式进入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;
@WebService
public 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的方法。