Server Tomcat v7.0 Server at localhost failed to start.臨時解決辦法

 

錯誤名:Server Tomcat v7.0 Server at localhost failed to start.java

解決辦法:去掉下面這句話:url

(一般在代碼開頭部分,public class前)spa

1 @WebServlet("/TwoServlet")

「/TwoServlet」相似的名字code

 

 

@WebServlet這玩意兒到底是什麼?

編寫好Servlet以後,接下來要告訴Web容器有關於這個Servlet的一些信息。在Servlet 3.0中,可使用標註(Annotation)來告知容器哪些Servlet會提供服務以及額外信息。例如在HelloServlet.java中:blog

1 @WebServlet("/hello.view")
2 public class HelloServlet extends HttpServlet {


只要在Servlet上設置@WebServlet標註,容器就會自動讀取當中的信息。上面的@WebServlet告訴容器,若是請求的URL是「/hello.view」,則由HelloServlet的實例提供服務。可使用@WebServlet提供更多信息。it

1 @WebServlet(
2 name="Hello",
3 urlPatterns={"/hello.view"},
4 loadOnStartup=1
5 )
6 public class HelloServlet extends HttpServlet {


上面的@WebServlet告知容器,HelloServlet這個Servlet的名稱是Hello,這是由name屬性指定的,而若是客戶端請求的URL是/hello.view,則由具Hello名稱的Servlet來處理,這是由urlPatterns屬性來指定的。在Java EE相關應用程序中使用標註時,能夠記得的是,沒有設置的屬性一般會有默認值。例如,若沒有設置@WebServlet的name屬性,默認值會是Servlet的類完整名稱。io


當應用程序啓動後,事實上並無建立全部的Servlet實例。容器會在首次請求須要某個Servlet服務時,纔將對應的Servlet類實例化、進行初始化操做,而後再處理請求。這意味着第一次請求該Servlet的客戶端,必須等待Servlet類實例化、進行初始動做所必須花費的時間,才真正獲得請求的處理。class


若是但願應用程序啓動時,就先將Servlet類載入、實例化並作好初始化動做,則可使用loadOnStartup設置。設置大於0的值(默認值爲-1),表示啓動應用程序後就要初始化Servlet(而不是實例化幾個Servlet)。數字表明瞭Servlet的初始順序,容器必須保證有較小數字的Servlet先初始化,在使用標註的狀況下,若是有多個Servlet在設置loadOnStartup時使用了相同的數字,則容器實現廠商能夠自行決定要如何載入哪一個Servlet。容器

相關文章
相關標籤/搜索