2015-09-16 3 views
1

Я работаю над сервером ubuntu 14.04 с tomcat 7 и jdk 8. Я новичок в сервлетах Java. Итак, я красным этим уроком http://www.tutorialspoint.com/servlets/servlets-first-example.htm, и сделал то же самое (но не в ROOT - в TESTAPP), но когда я попробую http://localhost:8080/TESTAPP/HelloWorld, я получаю ошибку 404. Иерархия Каталог:Tomcat не видит мой сервлет

/var/lib/tomcat7/webapps/TESTAPP/ 
| 
-- index.html 
-- META_INF/ 
-- WEB_INF/ 
    | 
----- web.xml 
----- classes/ 
     | 
-------- HelloWorld.java 
-------- HelloWorld.class 

index.html:

<h1>TESTAPP</h1> 

web.xml:

<?xml version="1.0" encoding="UTF-8"?> 
<web-app 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns="http://java.sun.com/xml/ns/javaee" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" 
    id="TESTAPP" 
    version="3.0"> 
    <servlet> 
     <servlet-name>HelloWorld</servlet-name> 
     <servlet-class>HelloWorld</servlet-class> 
    </servlet> 

    <servlet-mapping> 
     <servlet-name>HelloWorld</servlet-name> 
     <url-pattern>/HelloWorld</url-pattern> 
    </servlet-mapping> 
</web-app> 

HelloWorld.java:

// Import required java libraries 
import java.io.*; 
import javax.servlet.*; 
import javax.servlet.http.*; 

// Extend HttpServlet class 
public class HelloWorld extends HttpServlet { 

    private String message; 

    public void init() throws ServletException 
    { 
     // Do required initialization 
     message = "Hello World"; 
    } 

    public void doGet(HttpServletRequest request, 
        HttpServletResponse response) 
      throws ServletException, IOException 
    { 
     // Set response content type 
     response.setContentType("text/html"); 

     // Actual logic goes here. 
     PrintWriter out = response.getWriter(); 
     out.println("<h1>" + message + "</h1>"); 
    } 

    public void destroy() 
    { 
     // do nothing. 
    } 
} 

тогда я сделал

export CLASSPATH=/usr/share/tomcat7/lib/servlet-api.jar 
javac HelloWorld.java 
sudo service tomcat7 restart 

catalina.out: http://pastebin.com/raw.php?i=5SM3vatg

так, то в browseer (или с завитком) для http://localhost:8080/TESTAPP я получаю OK для http://localhost:8080/TESTAPP/HelloWorld я получаю НЕ НАЙДЕНО.


Так где же моя ошибка? Пожалуйста, помогите.

ответ

0

Каталог, в котором Tomcat развертывает веб-приложения, называется «webapps», а не «webapp», как указано в вашей иерархии каталогов.

+0

Вы правы. Я ошибся, когда писал этот пост. Я редактировал свой пост. – GALIAF95

+0

Можете ли вы разместить соответствующую часть журнала Tomcat? Он должен быть в /var/lib/tomcat7/logs/catalina.out в вашем случае –

+0

Я не уверен, что это важная часть, но я удалил catalina.out и перезапустил tomcat7, чтобы этот файл появился снова. И я добавил файл в конец сообщения. – GALIAF95

Смежные вопросы