2017-09-17 26 views
0

이클립스에서 작동하는 서블릿을 만들었지 만 나에게 준다.서블릿은 Eclipse에서는 작동하지만 Tomcat 서버에서는 작동하지 않습니다. "요청한 리소스를 사용할 수 없습니다."

"요청한 리소스를 사용할 수 없습니다." 이클립스 에 여기 http://localhost:8080/cs3220stu48/Labs/RequestSummary 은 내가 어떤 말을 들었다

<?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="WebApp_ID" 
version="3.0"> 
    <display-name>cs3220stu48</display-name> 
    <welcome-file-list> 
    <welcome-file>index.html</welcome-file> 
    <welcome-file>index.htm</welcome-file> 
    <welcome-file>index.jsp</welcome-file> 
    <welcome-file>default.html</welcome-file> 
    <welcome-file>default.htm</welcome-file> 
    <welcome-file>default.jsp</welcome-file> 
    </welcome-file-list> 
    </web-app> 

내 서블릿 코드

package CS3220; 


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; 
import java.util.Date; 
import java.util.Enumeration; 
import java.util.Map; 


@WebServlet("/Labs/RequestSummary") 
public class RequestSummary extends HttpServlet { 
private static final long serialVersionUID = 1L; 

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
    response.setContentType("text/html"); 
    PrintWriter out = response.getWriter(); 
    Date date = new Date(); 
    out.println("<!DOCTYPE html>"); 
    out.println("<html lang =\"en\">"); 
    out.println(" <head>"); 
    out.println("  <link rel= \"stylesheet\" href=\"https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css\" integrity=\"sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u\" crossorigin=\"anonymous\">"); 
    out.println("  <meta charset = \"UTF-8\">"); 
    out.println("  <title>Request Summary</title>"); 
    out.println(" </head>"); 
    out.println(" <body>"); 
    out.println( "<div class=\"container\">"); 
    out.println("   <div class =\"jumbotron\">"); 
    out.println("    <h1>Request Summaray</h1>"); 
    out.println("   <p>"); 
    out.println(    "The following " + "<code>" + request.getMethod() + "</code>" + " request was sent on " + "<code>" + date.toString() + "</code>"); 
    out.println("   </p>"); 
    out.println("   </div>"); 
    out.println(   "<h3>Request Parameters</h3>"); 
    out.println(    "<table class = \"table table-bordered table-striped table-hover\">"); 
    out.println(     "<thead>"); 
    out.println(      "<tr>"); 
    out.println(       "<td>Parameter Name</td>"); 
    out.println(       "<td>Parameter Value</td>"); 
    out.println(      "</tr>"); 
    out.println(     "</thead>"); 
    Map<String, String[]> Map=request.getParameterMap(); 
    for(String key:Map.keySet()){ 
     String[] Parameter=(String[])Map.get(key); 
      out.println("<tr>"); 
      out.println("<td>" + key + "</td>"); 
      out.println("<td>"); 
     for(String value:Parameter){ 
      out.println("<span class=\"label label-info\">"+ value + "</span>"); 
     } 
      out.println("</td>"); 
      out.println("</tr>"); 
    } 
    out.println(    "</table>"); 
    out.println(   "<h3>Header Information</h3>"); 
    out.println(    "<table class = \"table table-bordered table-striped table-hover\">"); 
    out.println(     "<thead>"); 
    out.println(      "<tr>"); 
    out.println(       "<td>Header Name</td>"); 
    out.println(       "<td>Header Value</td>"); 
    out.println(      "</tr>"); 
    out.println(     "</thead>"); 
     Enumeration<String> e = request.getHeaderNames(); 

     while(e.hasMoreElements()) { 
      String name = e.nextElement(); 
      String value = request.getHeader(name); 
      out.println("<tr>"); 
      out.println("<td>" + name + "</td>"); 
      out.println("<td>"+ value + "</td>"); 
      out.println("</tr>"); 
      } 

    out.println(    "</table>"); 
    out.println("  </div>"); 
    out.println(" </body>"); 
    out.println("</html>"); 
} 



protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 

    doGet(request, response); 
} 

} 

그리고 내 web.xml의 경우

http://cs3.calstatela.edu:8080/cs3220stu48/Labs/RequestSummary 에 내 Tomcat 서버에 액세스 아직 작동 급우가 내 XML 파일을 수정할 필요가 없으며 내 URL 패턴을 조정할 필요가 있지만 클래스를 사용하여 수행 할 작업에 대해 너무 확신하지는 않습니다. 나는 또한 그것을 올바른 디렉토리에 올렸습니다. 서블릿은 web-inf/classes 폴더에, xml은 web-inf로 들어갑니다. 이것은 서블릿으로 작업 한 첫 번째 시간이며 도움이 될뿐만 아니라 미래에 대한 조언도 감사 할 것입니다.

편집 : 나는 또한 내 코드와 함께 깨달았습니다. 장소는 저의 자바 파일을 넣으면 문제가 될 수 있습니다. WEB-INF에 web.xml을 넣고 WEB-INF/classes에 RequestSummary.java를 넣습니다.

EDIT 2 : 또한 이클립스에서 빌드 폴더가 비어있는 것처럼 보입니다. 거기에 클래스 폴더가 있어야한다고 생각합니다. 내 빌드 경로를 확인하고 기본적으로 빌드/클래스로 연결됩니다.

+0

tomcat 버전 및 포트 번호는 무엇입니까? – Sudhakar

+0

@Sudhakar 버전은 8.0.32입니다. 포트는 8080입니다. – STRAN

답변

0

클래스 파일에 클래스 파일을 업로드하고 있지만 클래스 파일과 빌드/클래스에서 찾은 폴더를 업로드해야합니다. 나는 공포에 질려서 내 코드라고 생각했지만 디렉토리 문제였습니다.