JDK6中的WebServices

从Java SE 5到Java SE 6中的一个变化就是:在Java SE6中引入了针对Web Services的java api。

也就是说Web Services已经不单单是Java EE中的规范了,在Java SE6中也对WebServices的规范做了支持。只需安装了Java SDK 6后就可以进行Web Services程序的开发和编译了。

 

其中包含的Web Services相关的主要规范如下:

Name                                                       Version    Package 

Java API for XML Web Services (JAXWS)         2.1       javax.xml.ws

Java Architecture for XML Binding (JAXB)         2.1       javax.xml.bind 

SOAP with Attachments API for Java (SAAJ)    1.3       javax.xml.soap 

Java Web Services Metadata (JSR 181)           2.0       javax.jws 

 

 详情请参照以下地址:

http://www.oracle.com/technetwork/java/javase/tech/webservices-jsp-136868.html

 

 

下面我们做个sample来试一下这Java SE 6的新功能。

1)依旧是创建一个最简单的service程序。

package sample; import javax.jws.WebService; import javax.xml.ws.Endpoint; @WebService public class Hello{ public String sayHello(String name){ return "Hello "+name+"!"; } public static void main(String [] args){ Endpoint.publish("http://localhost:8000/sample/HelloService",new Hello()); } }

使用Java SE 6中自带的lib就可以编译上述java文件,不再需要下载Java EE中的lib了。

 

在这里我们使用了Endpoint.publish方法,将我们创建的service程序发布到

http://localhost:8000/sample/HelloService这个地址。

 

2)运行service端的java程序后,web service程序就会被发布到JDK6中自带的轻量级HTTP Server中。

通过http://localhost:8000/sample/HelloService?wsdl地址就可以访问到刚才发布的web service的WSDL了。

 

3)客户端的创建和Java EE中的方法一样,只是同1)一样在编译时仅使用Java EE 6中自带的libs就行了。

当然Java EE 6中也包含了wsimport和wsgen这两个命令。

首先使用wsimport生成本地的proxy文件。

wsimport http://localhost:8000/sample/HelloService?wsdl

 

4)创建客户端

package sample; public class Client { public static void main(String [] args){ HelloService service=new HelloService(); Hello port = service.getHelloPort(); System.out.println(port.sayHello("test")); } }

 

5)编译,运行客户端即可

 

 

不过真的要创建Web Service应用程序或客户端程序的话,还是要使用metro比较好,其中除了JAX-WS之外,还包含了
Web Services相关的更加丰富的功能。

 

 

 

你可能感兴趣的:(java,jdk,Web,String,service,binding)