2015-07-03 113 views
0

我試圖運行使用Apache Tomcat V7.0(我也嘗試過8)使用動態web模塊3.0版一個servlet的servlet。運行與Eclipse的Java EE

Code

我也試圖與XML文件(即使它應該沒有它的工作,因爲它的3.0),它不藏漢工作...到底我做錯了什麼?

的錯誤是請求的資源不可用。

編輯:好了,我又做了一個XML文件,所以你也許可以告訴我,我在做什麼錯在它...

<?xml version="1.0" encoding="UTF-8"?> 
<web-app> 
<servlet> 
    <servlet-name>HelloServlet</servlet-name> 
    <servlet-class>code.HelloServlet</servlet-class> 
    </servlet> 

    <servlet-mapping> 
    <servlet-name>HelloServlet</servlet-name> 
    <url-pattern>/hello</url-pattern> 
    </servlet-mapping> 
</web-app> 

代碼裏面的src包的名稱。

我使用的網址:http://localhost:8080/hello,仍然沒有工作

+0

我不確定但是,不應該在web.xml中定義servlet可以接收哪些URL模式? – DGomez

+0

你用過什麼網址? – Bikku

+0

我使用URL和XML文件編輯了問題 – Rayden

回答

0

這是一個從這個問題還不是很清楚,要麼你想用@WebServlet或通過web.xml創建Servlet

要使用@WebServlet創建Servlet,您完全不需要配置web.xml

只需創建與@WebServlet註釋的類並調用下面的網址:

import java.io.IOException; 

import javax.servlet.annotation.WebServlet; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 

@WebServlet("/HelloServlet") 
public class MyServlet extends HttpServlet { 

    private static final long serialVersionUID = 1L; 

    public void doGet(HttpServletRequest request, HttpServletResponse response) 
      throws IOException { 
     response.getWriter().println("Hello"); 
    } 
} 

然後調用網址:http://host:port/context-root[/url-pattern],對我來說這http://localhost:8989/TestApplication/HelloServlet

或者,如果你想通過web.xml創建然後裝入在啓動servlet如下:

<servlet> 
     <display-name>Hello Servlet</display-name> 
     <servlet-name>HelloServlet</servlet-name> 
     <servlet-class>com.package.name.HelloServlet</servlet-class> 
     <load-on-startup>1</load-on-startup> 
    </servlet> 
    <servlet-mapping> 
     <servlet-name>HelloServlet</servlet-name> 
     <url-pattern>/HelloServlet/*</url-pattern> 
    </servlet-mapping> 

再次,你可以打電話像:http://host:port/context-root[/url-pattern],對我來說它是http://localhost:8989/TestApplication/HelloServlet

+0

我不明白如何獲得應用程序上下文名稱。 – Rayden

+1

在Eclipse中,右鍵點擊你的項目,然後進入'Web Project Settings',在那裏你會看到'Context root' – Arpit

1

包是錯誤的,你在web.xml中定義:

<servlet-class>code.HelloServlet</servlet-class> 

,並在課堂上

package net.codejava; 

所以這應該可以解決問題:

<servlet-class>net.codejava.HelloServlet</servlet-class 
+0

是的,我改變了,忘了編輯圖像 – Rayden