1。在Java项目中公布一个WebService服务:
怎样公布?
——JDK1.6中JAX-WS规范定义了怎样公布一个WebService服务。
(1)用jdk1.6.0_21以后的版本号公布。
(2)与Web服务相关的类,都位于Javax.jws.*包中
@WebService——此注解用在类上指定将此类公布成一个WebService;
EndPoint——此类为端点服务类,当中publish()方法用于将一个已经加入了@WebService注解对象绑定到一个地址的port上,用于公布。
2。样例:
(1)公布WebService服务
HelloWebService.java:
<span style="font-family:KaiTi_GB2312;font-size:18px;">package cn.tgb.ws; importjavax.jws.WebMethod; importjavax.jws.WebService; importjavax.xml.ws.Endpoint; /** * @WebService - 它是一个注解,用在类上指定将此类公布成一个ws. Endpoint – 此类为端点服务类。它的方法publish用于将一个已经加入了@WebService注解对象绑定到一个地址的端口上。 * @author xuemin * */ @WebService public classHelloWebService { publicString HelloWord(String name){ return"Hello: "+name; } /** *加入exclude=true后,HelloWord2()方法不会被公布 * @param name * @return */ @WebMethod(exclude=true) publicString HelloWord2(String name){ return"Hello: "+name; } publicstatic void main(String[] args) { /** *參数1:服务的公布地址 *參数2:服务的实现者 */ Endpoint.publish("http://192.168.24.138:456/helloWord",new HelloWebService()); } }</span>
注:
@WebService-
它是一个注解,用在类上指定将此类公布成一个ws.
Endpoint –此类为端点服务类。它的方法publish用于将一个已经加入了@WebService注解对象绑定到一个地址的port上。
执行以上程序进行公布。
(2)查看wsdl
地址:http://192.168.24.138:456/helloWord?wsdl
仅仅要在client浏览器能看到此WSDL文档。说明服务公布成功
以上服务公布成功。
总结:
怎样公布一个Web服务:
a,在类上加入@WebService注解
(注:此注解是jdk1.6提供的。位于javax.jws.WebService包中)
b,通过EndPoint(端点服务)公布一个WebService
(注:EndPoint是jdk提供的一个专门用于公布服务的类。该类的publish方法接收两个參数,一个是本地的服务地址。二是提供服务的类。位于
javax.xml.ws.Endpoint包中)
c,注:
类上加入注解@WebService,类中全部非静态方法都会被公布;
静态方法和final方法不能被公布。
方法上加@WebMentod(exclude=true)后,此方法不被公布;
(3)client訪问公布的服务
依据WSDL文档来在client编写代码,訪问公布的服务。
可是,WSDL文档看不懂怎么办?代码该怎样编写?
——你看不懂,JDK看得懂。wsimport是JDK自带的,能够依据WSDL文档生成client调用代码的工具。不管server端WebService使用什么语言编写的,豆浆在client生成Java代码。所以server用什么语言编写的并不重要。
wsimport.exe命令參数熟知:
-d:生成class文件。默认參数。
-s:生成Java文件
-p:自己定义包结构
解析地址生成源代码到E盘:
运行以上命令后。就可以在E盘下生成例如以下包及类
注:还能够自己定义包结构:
自己定义包结构的命令:
将生成的包及.java文件拷贝到client:例如以下图
创建訪问服务的类:MyClient.java:
MyClient.java:
<span style="font-family:KaiTi_GB2312;font-size:18px;">package cn.tgb.ws; public classMyClient { publicstatic void main(String[] args) { HelloWebServiceServicehwss = new HelloWebServiceService(); HelloWebServicehws = hwss.getHelloWebServicePort(); Stringresult=hws.helloWord("hanxuemin"); System.out.println(result); } }</span>
(4)执行结果:
总结:
通过此篇博客,应该掌握到:怎样公布一个Java Web服务。怎样在client訪问公布的Web服务。