【问题标题】:Previously working Java servlet now no longer working after 'Clean' - Tomcat v7.0 and Eclipse以前工作的 Java servlet 现在在“清理”之后不再工作 - Tomcat v7.0 和 Eclipse
【发布时间】:2014-02-23 13:54:00
【问题描述】:

所以我得到了一个 Eclipse 项目,我在 Eclipse 中打开它并转换为一个 Web 项目并开始为它编写一个 servlet + JSP 页面。它工作得很好,直到今天早上我使用 Eclipse 的内置清理功能清理了项目。 现在我得到了带有“请求的资源不可用”的 404,它以前工作正常。 这是 Servlet 代码:

package servlets;

import is2.data.SentenceData09;
import is2.lemmatizer.Lemmatizer;

import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;

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

/**
 * Servlet implementation class FYPServlet
 */
@WebServlet("/FYPServlet")
public class FYPServlet extends HttpServlet {
private static final long serialVersionUID = 1L;

/**
 * Default constructor. 
 */
public FYPServlet() {
    // TODO Auto-generated constructor stub
}

/**
 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
 */
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    if(request.getParameter("sentence")!=null){

        //Create container
        SentenceData09 sentence = new SentenceData09();

        //Split input up
        String[] words = request.getParameter("sentence").split(" ");
        String lastword = words[words.length-1];
        int sizeoflastword = lastword.length();

        //If sentence has a full stop, remove it
        if(lastword.charAt(sizeoflastword-1)=='.'){
            words[words.length-1] = lastword.substring(0,sizeoflastword-1);
        }

        //Add <root> to start and a full stop to end
        String[] fullsentencewords = new String[words.length+2];
        fullsentencewords[0] = "<root>";
        int i=1;
        for(String word : words){
            fullsentencewords[i] = word;
            i++;
        }
        fullsentencewords[fullsentencewords.length-1] = ".";

        //Initialise the container
        sentence.init(fullsentencewords);

        //Give lemmatizer location of model
        is2.lemmatizer.Options optsLemmatizer = new is2.lemmatizer.Options(new String[] {"-model","C:/Users/Illuria/Downloads/small-models-english/small-models-english/models/lemmatizer-eng-4M-v36.mdl"});

        //Create lemmatizer
        Lemmatizer lemmatizer = new Lemmatizer(optsLemmatizer);

        //Apply the lemmatizer
        lemmatizer.apply(sentence);

        //Display the lemmata
        for (String l : sentence.plemmas) System.out.println("lemma : "+l); //TODO: Push this to the new page

        request.setAttribute("lemmas", sentence.plemmas);

        request.getRequestDispatcher("ParseDisplay.jsp").forward(request, response);
    }else{
        response.sendRedirect("EntryForm.jsp");
    }
}

/**
 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
 */
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    doGet(request,response);
}

我得到的确切 404 是: HTTP 状态 404 - /mate-tools-2/FYPServlet 类型:状态报告 消息:/mate-tools-2/FYPServlet 描述:请求的资源不可用

不幸的是,我在网络开发方面有点新手,所以任何帮助都将不胜感激!

【问题讨论】:

  • servlet 映射怎么样?
  • 它是 Tomcat v7.0 并且 Servlet 有 @WebServlet,所以它被正确地映射了。

标签: java eclipse tomcat servlets


【解决方案1】:

不确定您是否仍有问题,但有时只是清洁无济于事。我从 Tomcat eclipse 中删除 webapp(右键单击 Tomcat 并执行“添加或删除”),清理它并将其添加回来。让我们知道这是否有帮助。

【讨论】:

    猜你喜欢
    • 2011-04-17
    • 2013-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-15
    • 1970-01-01
    • 2017-12-02
    • 2015-03-21
    相关资源
    最近更新 更多