2012-01-01 4 views
0

Я следую за головой First Java.Простое развертывание сервлетов на Tomcat eclipse

Я создал простой сервлет, как они инструктировали, но они не писали, как его развернуть.

Я пытаюсь развернуть его на Tomcat 7, и я установил его через затмение.

Однако im получает ошибку 404 страницы.

Я создал web.xml Я также разместил файлы классов в WEB-INF/classes.

Вот код.

package org.code; 

import java.io.*; 

import javax.servlet.*; 
import javax.servlet.http.*; 

public class KathyServlet extends HttpServlet { 

public void doGet (HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
PrintWriter out; 
String title = "PhraseOMatic has generated the following phrase."; 
    response.setContentType("text/html"); 
out = response.getWriter(); 

    out.println("<HTML><HEAD><TITLE>"); 
out.println("PhraseOmatic"); 
out.println("</TITLE></HEAD><BODY>"); 
out.println("<H1>" + title + "</H1>"); 
out.println("<P>" + PhraseOMatic2.makePhrase()); 
    out.println("<P><a href=\"KathyServlet\">make another phrase</a></p>"); 
out.println("</BODY></HTML>"); 

out.close(); 
} 
} 

другой Java-код файла:

package org.code; 

public class PhraseOMatic2 { 
public static String makePhrase() { 

// make three sets of words to choose from 
String[] wordListOne = {"24/7","multi-Tier","30,000 foot","B-to-B","win-win","front-  end", "web-based","pervasive", "smart", "six-sigma","critical-path", "dynamic"}; 

String[] wordListTwo = {"empowered", "sticky", "valued-added", "oriented", "centric", "distributed", "clustered", "branded","outside-the-box", "positioned", "networked", "focused", "leveraged", "aligned", "targeted", "shared", "cooperative", "accelerated"}; 

String[] wordListThree = {"process", "tipping point", "solution", "architecture", "core competency", "strategy", "mindshare", "portal", "space", "vision", "paradigm", "mission"}; 

// find out how many words are in each list 
int oneLength = wordListOne.length; 
int twoLength = wordListTwo.length; 
int threeLength = wordListThree.length; 

// generate three random numbers, to pull random words from each list 
int rand1 = (int) (Math.random() * oneLength); 
int rand2 = (int) (Math.random() * twoLength); 
int rand3 = (int) (Math.random() * threeLength); 

// now build a phrase 
String phrase = wordListOne[rand1] + " " + wordListTwo[rand2] + " " + wordListThree[rand3]; 

// now return it 
return ("What we need is a " + phrase); 
} 
} 

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" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0"> 
<display-name>HFJse</display-name> 
<servlet> 
<servlet-name>kathyServlet</servlet-name> 
<servlet-class>org.yasin.KathyServlet</servlet-class> 
</servlet> 
<servlet-mapping> 
<servlet-name>KathyServlet</servlet-name> 
<url-pattern>/snoop/*</url-pattern> 
</servlet-mapping> 
</web-app> 

ответ

3

наш сервлет Calss находится в пакете org.code, но имя класса вы установленный в web.xml равен org.yasin.KathyServlet ,

Кроме того, вы указали имя kathyServlet на свой сервлет в web.xml, но ваше сопоставление использует имя KathyServlet. Названия сервлетов чувствительны к регистру.

+0

Извините, что я вложил неправильный xml, я изменил xml на правильное имя пакета, но он все же дал ту же ошибку, но я не заметил нижний регистр kathy, и как только я изменил его, он работал нормально. –

0

Если этот код правильный, вы web.xml плохо. Вы определяете сервлет-класс с помощью:

org.yasin.KathyServlet

и ваш сервлетов:

org.code.KathyServlet

сервлетов, который вы используете в вашем web.xml нужно указать правильный пакет и имя Sevlet.

Вы должны увидеть ClassNotFound в вашем журнале tomcat, связанном с вами ошибкой 404.

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