用Eclipse在Java 6下开发Web Service

用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

 用Eclipse在Java 6下开发Web Service_第1张图片

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脚本

 用Eclipse在Java 6下开发Web Service_第2张图片

 

4)、刷新项目,查看生成的Java文件

 用Eclipse在Java 6下开发Web Service_第3张图片

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

 用Eclipse在Java 6下开发Web Service_第4张图片

7)、在IE中测试

 用Eclipse在Java 6下开发Web Service_第5张图片

 

3、  开发客户端程序

1)、创建一个新的Java项目,命名为MyWebservice_client

 用Eclipse在Java 6下开发Web Service_第6张图片

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脚本,生成客户端程序,刷新项目查看新生成的文件:

 用Eclipse在Java 6下开发Web Service_第7张图片

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);

}

}

 用Eclipse在Java 6下开发Web Service_第8张图片

4、  总结

一切都很顺利,“Hello Mike!”让我们着实兴奋了一阵子。我们用了很短的时间开发了一个简单的WebService及其客户端程序,显然这一切有赖于Java 6对WebService的完美支持。当然,这只是小试牛刀,读者可以自己尝试编写复杂的服务,比如:多参数、复杂类型参数、复杂类型返回值、抛出异常,等等。通过阅读不同情况下生成的wsdl你会理解WebService的内部机制。

WebService还有很多其他具体实现方法。比如apache的axis和axis2,weblogic也有自己的实现方法,等等。值得一提的是axis2,它也不需要开发者自己编写WSDL脚本,甚至不需要在服务器端生成任何额外的程序文件,只需把程序按规范部署就可以了,而且可以简单的部署到各种web服务器上。读者可以多尝试一下,根据实际情况取舍。

WebService做为SOA中的一项具体技术应用已经非常广泛,随着各种辅助工具的完善,我们的开发工作变得越来越容易和规范,看着清爽的代码,真的是一种享受。

<!-- -->

你可能感兴趣的:(java,eclipse,Web,webservice,ant)