在webservice流行的今天,如何構(gòu)建webservice是很多java軟件開發(fā)人員都想掌握的一門技術(shù),在jdk6以前,我們構(gòu)建webservice都需要一些開源的項(xiàng)目作為支持,例如xfire,但是jdk6一經(jīng)發(fā)布,構(gòu)建一個(gè)webservice在java開發(fā)領(lǐng)域變得非常就簡(jiǎn)單,下面筆者就簡(jiǎn)單介紹一下,如何使用jdk6構(gòu)建一個(gè)webservice,并將其發(fā)布在tomcat上。
一、創(chuàng)建java項(xiàng)目ws_test_sample,將.class文件輸出到WEB-INF\classes下。
二、新建java類如下:
- package com.je.ws.sample;
- import javax.jws.WebMethod;
- import javax.jws.WebService;
- @WebService(name="helloService", portName="helloServicePort", targetNamespace="http://www.javaedu.com")
- public class HelloService {
- @WebMethod
- public String hello(String name) {
- return "Hello," + name;
- }
- }
三、進(jìn)入到E:\eclipsespace\ws_test_sample,執(zhí)行
引用
E:\eclipsespace\ws_test_sample>wsgen -cp .\WEB-INF\classes -s .\src -d .\src com.je.ws.sample.HelloService
四、生成的文件結(jié)構(gòu)如下:
五、編寫webservice服務(wù)端測(cè)試類
- package com.je.ws.sample;
-
- import javax.xml.ws.Endpoint;
-
-
- public class Test {
-
-
-
-
- public static void main(String[] args) {
- Endpoint.publish("http://127.0.0.1:8001/HelloServicePort", new HelloService());
- }
-
- }
六、直接運(yùn)行Test類,并在瀏覽器中輸入:http://127.0.0.1:8001/HelloServicePort和http://127.0.0.1:8001/HelloServicePort?wsdl,測(cè)試webservice是否發(fā)布成功,見到如下畫面,則webservice測(cè)試發(fā)布成功。
如果想將webservice發(fā)布到Tomcat上,則需要按照以下步驟進(jìn)行:
一、在web.xml里加入:
- <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文件,其內(nèi)容如下:
- <endpoint name="HelloService" implementation="com.je.ws.sample.HelloService" url-pattern="/helloServicePort" />
三、在E:\eclipsespace\ws_test_sample\WEB-INF\lib下加入如下四個(gè)webservice相關(guān)的jar包
四、啟動(dòng)tomcat,訪問:http://127.0.0.1:8088/ws/helloServicePort,得到如下畫面:
可點(diǎn)擊http://127.0.0.1:8088/ws/helloServicePort?wsdl得到如下畫面:
此刻說明webservice在Tomcat上發(fā)布成功了!在下一篇博客里,我將告訴大家如何使用soapui來測(cè)試一個(gè)webservice,以及如何用使用java原生API通過http協(xié)議訪問一個(gè)webservice。