在webservice流行的今天,如何构建webservice是很多java软件开发人员都想掌握的一门技术,在jdk6以前,我们构建webservice都需要一些开源的项目作为支持,例如xfire,但是jdk6一经发布,构建一个webservice在java开发领域变得非常就简单,下面笔者就简单介绍一下,如何使用jdk6构建一个webservice,并将其发布在tomcat上。
一、创建java项目ws_test_sample,将.class文件输出到WEB-INFclasses下。
二、新建java类如下:
Java代码
packagecom.je.ws.sample; importjavax.jws.WebMethod; importjavax.jws.WebService; @WebService(name="helloService",portName="helloServicePort",targetNamespace="http://www.javaedu.com") publicclassHelloService{ @WebMethod publicStringhello(Stringname){ return"Hello,"+name; } }
三、进入到E:eclipsespacews_test_sample,执行
引用
E:eclipsespacews_test_sample>wsgen -cp .WEB-INFclasses -s .src -d .src com.je.ws.sample.HelloService
四、生成的文件结构如下:
五、编写webservice服务端测试类
Java代码
packagecom.je.ws.sample; importjavax.xml.ws.Endpoint; publicclassTest{ /** *@paramargs */ publicstaticvoidmain(String[]args){ Endpoint.publish("http://127.0.0.1:8001/HelloServicePort",newHelloService()); } }
六、直接运行Test类,并在浏览器中输入:http://127.0.0.1:8001/HelloServicePort和http://127.0.0.1:8001/HelloServicePort?wsdl,测试webservice是否发布成功,见到如下画面,则webservice测试发布成功。
如果想将webservice发布到Tomcat上,则需要按照以下步骤进行:
一、在web.xml里加入:
Java代码
<listener> <listener-class>com.sun.xml.ws.transport.http.servlet.WSServletContextListener</listener-class> </listener> <servlet> <servlet-name>WSServlet</servlet-name> <servlet-class>com.sun.xml.ws.transport.http.servlet.WSServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>WSServlet</servlet-name> <url-pattern>/helloServicePort</url-pattern> </servlet-mapping>
二、在WEB-INF下新建sun-jaxws.xml文件,其内容如下:
Java代码
<endpointname="HelloService"implementation="com.je.ws.sample.HelloService"url-pattern="/helloServicePort"/>
三、在E:eclipsespacews_test_sampleWEB-INFlib下加入如下四个webservice相关的jar包
四、启动tomcat,访问:http://127.0.0.1:8088/ws/helloServicePort,得到如下画面:
![jdk6下开发webservice示例 jdk开发webservice](http://img.413yy.cn/images/31101031/31100730t01ebf353b0d19404bc.png)
可点击http://127.0.0.1:8088/ws/helloServicePort?wsdl得到如下画面:
此刻说明webservice在Tomcat上发布成功了!在下一篇博客里,我将告诉大家如何使用soapui来测试一个webservice,以及如何用使用java原生API通过http协议访问一个webservice。