이클립스에서 작동하는 서블릿을 만들었지 만 나에게 준다.서블릿은 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 : 또한 이클립스에서 빌드 폴더가 비어있는 것처럼 보입니다. 거기에 클래스 폴더가 있어야한다고 생각합니다. 내 빌드 경로를 확인하고 기본적으로 빌드/클래스로 연결됩니다.
tomcat 버전 및 포트 번호는 무엇입니까? – Sudhakar
@Sudhakar 버전은 8.0.32입니다. 포트는 8080입니다. – STRAN