使用Servlet發布WebService

來源:互聯網
上載者:User

標籤:style   blog   class   code   c   java   

首先感謝熔岩的文章:

http://lavasoft.blog.51cto.com/62575/227988

1.Eclipse安裝上tomcat外掛程式,http://www.eclipsetotale.com/tomcatPlugin.html下載後解壓者eclipse的plugin目錄

2.建立一個WebService:

package com.garfield.webservice;import javax.jws.WebService;/** * Java6開發的WebService服務端 * * @author leizhimin 2009-11-16 10:24:13 */ @WebService public class HelloWebservice {    /**      * Web服務中的業務方法      *      * @return 一個字串      */     public String doSomething(String username) {             return username + " is doing something!";     } }

 

3.在Eclipse中建立一個tomcat工程,建立一個Servlet:

package com.garfield.servlet;import java.io.IOException;import javax.servlet.GenericServlet;import javax.servlet.ServletConfig;import javax.servlet.ServletException;import javax.servlet.ServletRequest;import javax.servlet.ServletResponse;import javax.xml.ws.Endpoint;import com.garfield.webservice.HelloWebservice;/** * 發布Java6 WebService的Servlet, * * @author leizhimin 2009-11-16 13:52:49 */ public class WSServlet extends GenericServlet {         @Override         public void init(ServletConfig servletConfig) throws ServletException {                 super.init(servletConfig);                 System.out.println("準備啟動WebService服務:http://localhost:8888:8888/java6ws/Java6WS");                 //發布一個WebService                 Endpoint.publish("http://localhost:8888/java6ws/Java6WS", new HelloWebservice());                 System.out.println("已成功啟動WebService服務:http://localhost:8888:8888/java6ws/Java6WS");         }         public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {                 System.out.println("此Servlet不處理任何商務邏輯,僅僅yonglai發布一個Web服務:http://localhost:8888:8888/java6ws/Java6WS");         } }

 

4.編輯web.xml:

<!DOCTYPE web-app PUBLIC  ‘-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN‘  ‘http://java.sun.com/dtd/web-app_2_3.dtd‘><web-app>     <servlet>            <servlet-name>WSServlet</servlet-name>            <servlet-class>com.garfield.servlet.WSServlet</servlet-class>            <load-on-startup>1</load-on-startup>    </servlet>    <servlet-mapping>            <servlet-name>WSServlet</servlet-name>            <url-pattern>/servlet/WSServlet</url-pattern>    </servlet-mapping> </web-app>

這裡將服務發布的代碼寫在了Servlet的init()方法中,當Servlet載入時候,會自動執行init()裡面的方法。從而達到發布服務的目的,由於此Servlet不處理任何業務,因此,在Service裡面僅僅寫了一個提示性的語句。

5.啟動Tocmat,現在可以訪問這個服務了

6.訪問webservice:http://localhost:8888/java6ws/Java6WS?wsdl

7.幾個注意的問題:

a.如果在eclipse直接使用tomcat外掛程式部署發現停止tomcat後webservice仍然可以訪問,手工部署到tomcat後則可以通過tomcat的停止和啟動來控制。

b.通過eclipse的tomcat外掛程式打包成war,然後拷貝至tomcat的webapp目錄下發布,如果有更新,則需要刪除掉tomcat解包war自動產生的目錄及檔案。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.