java中WebService框架有很多,像Axis,XFire,CXF等,除了上述框架外,JDK中自带JAX-WS框架。相比而言,JWS是轻量级的,使用非常简便,可与Spring集成使用。
下面就详述如何通过mvn构建WebService服务端及客户端。
1.引包。
在mvn项目的pom文件中加入依赖包
>jaxws-rt>
引完包后记得重新构建项目,命令方式如下
mvn eclipse:eclipse 2.写服务端代码,举Hello服务类如下{String.format(“Hello, %s”, name);}}
上面通过注解@WebService表明这是一个WebService类,其中注解@WebMethod、@WebParam非必需。
3.服务发布
有两种方式发布自己的WebService
方式一:(String[] args) {Endpoint.publish(“http://localhost/HelloService”, new Hello());}
直接通过Endpoint.publish方式进行WebService发布,一般用作调试。运行该类后在浏览器访问如下图
方式二:
发布到web容器中。下面以tomcat为例说明发布配置过程 在WEB-INF目录下新建sun-jaxws.xml文件(该xml文件名固定死的,不能随意修改),内容如下:
===>
然后修改web.xml,增加Listener和Servlet如下:
<!DOCTYPE web-app PUBLIC “-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN” “http://java.sun.com/dtd/web-app_2_3.dtd” >>><listener><listener-class>com.sun.xml.ws.transport.http.servlet.WSServletContextListener><servlet-name>SayHiService</servlet-name><servlet-class>com.sun.xml.ws.transport.http.servlet.WSServlet>><listener><listener-class>org.springframework.web.context.ContextLoaderListener>>>>></web-app>
注解sun-jaxws.xml中的url-pattern需要与web.xml中的servlet的url-pattern一致,,如上例都为/HelloService(可任意取值)。 启动tomcat后浏览器中输入网址:?wsdl(jquery_ui是本人的项目名),如看到wsdl文件则表明服务发布成功
4.java客户端调用
可利用JDK自带的wsimport工具生成基础代码
一、cmd界面下切换到项目的src\main\java目录下二、执行命令xxx\src\main\java>wsimport -encoding utf-?wsdl
wsimport用法如下:
用法: wsimport [options] <WSDL_URI>其中 [options] 包括: -d <directory>指定放置生成的输出文件的位置 -encoding <encoding>指定源文件所使用的字符编码 -help显示帮助 -keep保留生成的文件(指保留java源文件) -p <pkg>指定目标程序包名
此时,在包com.gvtv.learn.ws.client下可看见生成的源文件如下
三、利用上面生成的java源文件调用web服务。示例如下:public class Main {(String[] args) {Hello service = new HelloService().getHelloPort();String result = service.sayHello(“屌丝!”);System.out.println(result);}}
可看到打印出信息
Hello, 屌丝!
至此,java版的WebService服务端和客户端就完成了,过程非常简单。下次补充下其它知识点
你的脸是为了呈现上帝赐给人类最贵重的礼物–微笑,一定要成为你工作最大的资产。