티스토리 뷰

|에러문구

Starting Tomcat v8.0 Server at localhost has encountered a problem. Server Tomcat v8.0 Server at localhost failed to start

 

|해결방안

1. 프로젝트 삭제 및 재생성

2. 톰캣 삭제 및 재생성

3. 프로젝트 클린

4. 메이븐 업데이트

5. 라이브러리 업데이트

6. 서블렛 설정 

 

 

[스프링 퀵 스타트] p36

HelloServlet.java

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class HelloServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    public HelloServlet() {
        System.out.println("===> HelloServlet 객체 생성");
    }

	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		response.getWriter().append("Served at: ").append(request.getContextPath());
		
		System.out.println("doGet() 메소드 호출");
	}

}

 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 https://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">
  <servlet>
    <description></description>
    <display-name>HelloServlet</display-name>
    <servlet-name>HelloServlet</servlet-name>
    <servlet-class>HelloServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>HelloServlet</servlet-name>
    <url-pattern>/hello.do</url-pattern>
  </servlet-mapping>
</web-app>

 

몇 시간 동안 tomcat에러가 떠서 원인을 찾지 못하고 있었다.

그래서 프로젝트를 삭제하고 처음부터 다시해봤다.

이전과 크게 달리한 건 없는데, 서블렛 파일 생성할 때 설정을 확실히 했다.

 

파일 생성할 때 Class name에 원하는 Class 이름을 지정한다. 교재에서는 HelloServlet이므로 HelloServlet으로 지정해줘야되지만, 이미 생성햇고 포스팅을 위한 테스트용으로 대충 지었다.

그리고 Next를 클릭한다.

 

Next를 클릭하면 다음과 같은 화면을 볼 수 있는데, Name과 URL mappings를 원래 설정안하고 Finish 했다가 몇 시간 동안 Tomcat에러가 발생했었다. 

 

교재따라 천천히 하다가 이런 디테일 부분을 생략되서 아쉬웠다.

늘 고생하는건 프로그래밍하는 개발자 ^^

문제 해결하니 기분이 좋다.

별건 아니지만, 이런 문제를 해결 하는 맛에 개발자 하는거 아닌가 싶다.

 

위와 같이 name과 url mappings를 수정했다. 

다음은 Next를 클릭해 넘어간다.

교재에서는 doGet만 있으므로 doPost가 체크되어 있으므로 체크해제 해주고 Finish한다.

 

짜잔~

이와 같이 수정하면 pom.xml에서 교재와 같이 원하는 결과를 얻을 수 있다.

별거 아니지만 교재에서 원하는대로 그리고 아무런 문제없이 해결됐다.

 

 

서블렛을 만들면 pom.xml에서 매핑해주고 url-pattern을 자동으로 생성해준다는건 처음 알았다.

지금까지는 서블렛을 만들면 그냥 일일이 만들어 줬는데 이걸 이럴때 쓰는건지 몰랐다.

 

 

 

 

이런 문제를 해결하면서 소소한 팁을 얻어가느 량량