用Eclipse在Java 6下开发Web Service
Java SE 6 对Web Service的开发提供了完全的支持。下面让我们利用Eclipse在Java 6下进行一个简单的Web Service的开发,希望能给初学者带来好处。
1、 软件环境
1)、Eclipse
在http://www.eclipse.org/downloads/下载最新的Eclipse。
2)、JDK
在http://java.sun.com/javase/downloads/下载Java SE development kit 6
3)、Ant
使用Eclipse自带的Ant插件,不用另外安装。
2、 开发服务器端程序
1)、创建一个Java项目,命名为MyWebService_server
2)、创建一个简单的类,代码如下:
package test.ws;
import javax.jws.WebService;
@WebService
public class Hello {
public String sayHello(String name) {
return "Hello " + name + "!";
}
}
这个类有一个方法(sayHello),参数是一个字符串,代表一个人的名字,返回值也是一个字符串,意思是向这个人打招呼。这就是我们的WebService要提供的服务。
请注意类声明的前面有个annotation “@WebService”,这个注释的作用就是标明这个类是一个WebService。
2)、创建一个Ant脚本build.xml,内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<project default="wsgen">
<target name="wsgen">
<exec executable="D:\jdk1.6.0\bin\wsgen.exe">
<arg line="-cp ./bin -keep -s ./src -d ./bin test.ws.Hello" />
</exec>
</target>
</project>
请根据你自己的jdk安装路径对上面内容做适当修改
3)、运行ant脚本
4)、刷新项目,查看生成的Java文件
5)、编写WebService启动程序
package test.ws;
import javax.xml.ws.Endpoint;
public class RunWebService {
public static void main(String[] args) {
Endpoint.publish("http://localhost:8000/hello", new Hello());
}
}
6)、启动WebService
7)、在IE中测试
3、 开发客户端程序
1)、创建一个新的Java项目,命名为MyWebservice_client
2)、创建Ant脚本build.xml
<?xml version="1.0" encoding="UTF-8"?>
<project default="wsimport">
<target name="wsimport">
<exec executable="D:\jdk1.6.0\bin\wsimport.exe">
<arg line="-s ./src -d ./bin http://localhost:8000/hello?wsdl" />
</exec>
</target>
</project>
同样,请按您的jdk安装路径修改。
3)、运行ant脚本,生成客户端程序,刷新项目查看新生成的文件:
4)、编写测试程序,测试客户端。
package test.ws.call;
import test.ws.Hello;
import test.ws.HelloService;
public class CallWebService {
public static void main(String[] args) {
Hello hello = new HelloService().getHelloPort();
String str = hello.sayHello("Mike");
System.out.println(str);
}
}
4、 总结
一切都很顺利,“Hello Mike!”让我们着实兴奋了一阵子。我们用了很短的时间开发了一个简单的WebService及其客户端程序,显然这一切有赖于Java 6对WebService的完美支持。当然,这只是小试牛刀,读者可以自己尝试编写复杂的服务,比如:多参数、复杂类型参数、复杂类型返回值、抛出异常,等等。通过阅读不同情况下生成的wsdl你会理解WebService的内部机制。
WebService还有很多其他具体实现方法。比如apache的axis和axis2,weblogic也有自己的实现方法,等等。值得一提的是axis2,它也不需要开发者自己编写WSDL脚本,甚至不需要在服务器端生成任何额外的程序文件,只需把程序按规范部署就可以了,而且可以简单的部署到各种web服务器上。读者可以多尝试一下,根据实际情况取舍。
WebService做为SOA中的一项具体技术应用已经非常广泛,随着各种辅助工具的完善,我们的开发工作变得越来越容易和规范,看着清爽的代码,真的是一种享受。
<!-- -->