tomcat: 32개의 글
사내에서 운영중인 웹서비스의 로그에서 아래와 같은 Exception이 다량으로 발견되는 것을 확인하였다. 혹시 서비스에 중요한 영향을 미치지 않을까하는 걱정이 앞서 예외가 발생하는 원인을 살펴보았다. java.lang.Object ㄴ java.lang.Throwable ㄴ java.lang.Exception ㄴ java.io.IOException ㄴ org.apache.catalina.connector.ClientAbortException org.apache.catalina.connector.ClientAbortException ClientAbortException은 애플리케이션에서 발생하는 것이 아닌, Tomcat 컨테이너에서 특정 상황에서 발생하는 예외였는데 특이한 부분은 HTTP Request의 H..
[IntelliJ] 프로젝트(모듈) Tomcat 서버 context.xml 생성 방법 Project Structure 창에서 해당하는 웹 프로젝트(모듈)의 Web framework를 선택하고 [Add Application Server specific descriptor...]를 클릭한다. 위와 같이 지정해준다. IntelliJ IDEA 2019.3 기준으로 Version은 5.0만 있지만 상관 없다. [OK]를 클릭한다. 위와 같이 Tomcat Context Descriptor가 추가된 것을 볼 수 있다. [OK]를 클릭한다. META-INF/context.xml 파일이 생성되었다. 여기에 DataSource 등의 필요한 설정을 추가해주면 된다. 출처 : atoz-develop.tistory.com/en..
이클립스에서 가상 웹 서버 커넥션 풀 문제를 해결 후 실 서버 톰캣 커넥션 풀을 진행하려고 하였으나 이번엔 바로 종료되는 문제가 발생하였다. 문제는 해결하였고 해결과정을 기재하려고한다. 1. JAVA_HOME, CATALINA_HOME 변수를 먼저 확인한다. 2. 변수에 문제가 없다면 server.xml에 문제가 있을 가능성이 매우 높다. 본인이 server.xml을 건드렸다면 가능성이 매우 높으니 참고하도록하자 우선 나의 경우 3. JAVA_HOME 환경 변수를 잘못 설정했을 경우(JAVA_HOME 환경 변수 경로 확인하기) 첫번째 문제 경로를 잘못 입력했을 경우 톰캣은 바로 종료된다. 그러므로 꼭 경로를 정확히 입력하도록하자. 두번째 문제 Context 엘리먼트에 위와 같이 경로를 설정했다면 해당 경..
1. 문제상황 HTTP 메소드 DELETE로 request body를 이용하여 spring 컨트롤러에 요청을 쐈는데, 파라미터가 전부 null 로 넘어가는 것이 아닌가?? 띠용? 2. 문제점 참조문서 : https://stackoverflow.com/questions/25375046/passing-data-in-the-body-of-a-delete-request tomcat의 문제라고 한다. tomcat은 request body를 POST 일때만 파싱하고 있었다. 코드까보기 톰캣버전 : 8.0.48 (로컬 윈도우에 깔린거) 경로 : org.apache.catalina.connector.Connector.java 관련 코드 76라인 : 생성자호출에서 this.parseBodyMethods = "POST";..
1. 서블릿이란? HTTP protocol 서비스를 지원하는 javax.servlet.http.HttpServlet 클래스를 상속하여 개발하며, Servlet은 컨테이너에 의해서 실행되고 관리된다. HTML 변경 시 Servlet을 재컴파일해야 하는 단점이 있다. 서블릿은 외부 요청마다 프로세스보다 가벼운 스레드로써 응답한다. 2. JSP와 서블릿의 차이점 JSP : HTML 문서 안에 java 코드를 포함하고 있다. MVC에서 View 역할 서블릿 : 자바 코드 안에 HTML을 포함하고 있다. 주로 MVC에서 컨트롤러 역할 3. 서블릿 컨테이너(톰캣 등)란? HTTP 요청을 받아서 Servlet을 실행하고 생명주기를 관리하는 역할을 한다. servlet과 웹서버가 통신할 수 있는 방법을 제공 멀티 스레..
이 포스팅은 CentOS 7 / Tomcat 8.0.22 버전에서 진행되었습니다. 목차 ○ Apache Tomcat 가이드 - 설치부터 서비스 등록까지 ○ Apache Tomcat 가이드 - 설정파일 분석하기 server.xml 1.1 Listener 리스너는 일반적으로 Apache Tomcat이 시작하거나 중지하는 것과 같이, 라이프 사이클 안에서의 이벤트를 정의합니다. 리스너를 선언하는 방법은 아래와 같습니다. 이어서 리스너의 종류별로 지원하는 속성에 대해 말씀드리겠습니다. APR Lifecycle Listener - org.apache.catalina.core.AprLifecycleListener 이 리스너는 APR/native 라이브러리가 존재하는재 확인한 후, 존재한다면 라이브러리를 로딩해주는 ..
이 포스팅은 CentOS 7 버전에서 진행되었습니다. 목차 ○ Apache Tomcat 가이드 - 설치부터 서비스 등록까지 ○ Apache Tomcat 가이드 - 설정파일 분석하기 설치하기 OPEN JDK 설치하기 Apache Tomcat을 설치하기 위해서는 우선 JDK(Java Development Kit)를 설치해야합니다. 일반적으로, JDK는 유료입니다. 따라서, 무료로 제공되고 있는 OPEN JDK 라는 것을 사용해야합니다. 차이점은 OPEN JDK는 Java 버전이 1.8까지만 제공되어있고, JDK는 최신버전(11.0 이상)을 이용할 수 있습니다. 저희는 어디까지나 Apache Tomcat을 실행하기 위한 용도로 설치하는 것이기 때문에, JDK의 최신버전의 기능을 사용할 필요가 없습니다. 그러므..
tomcat 설치경로/lib/ 으로 이동한다. lib 디렉토리 안에 catalina.jar 파일이 있다. 아래의 java 명령어를 사용하면 다음과 같이 출력된다. $ java -cp catalina.jar org.apache.catalina.util.ServerInfo Server version: Apache Tomcat/7.0.82 Server built: Sep 29 2017 12:23:15 UTC Server number: 7.0.82.0 OS Name: Linux OS Version: 2.6.32-573.7.1.el6.x86_64 Architecture: amd64 JVM Version: 1.7.0_79-b15 JVM Vendor: Oracle Corporation 만약 java 명령어의 ..
(현재) 뉴비때 리눅스에 웹프로젝트를 올리려고 하는데, 당시에는 Web Server와 WAS의 개념과 원리도 잘 몰랐을 뿐더러 톰캣에 대한 범용적인 설정지식도 없었다. 그냥 찾아보고 마구잡이로 적용해보던 시기에서 다른 블로그에 리눅스에 톰캣설치하는 삽질을 기록해뒀길래 포워딩 해온다. 리눅스 서버에 웹프로젝트를 올리기 위해서는 리눅스에도 Tomcat을 설치해야 한다. 그리고 Tomcat을 설치하기 전에 JDK를 설치해야 하는데, 리눅스의 경우 Open JDK를 내장하고 있다. 그래서 기존의 Open JDK를 삭제하고 정식 Oracle JDK를 설치하든, 그냥 Open JDK를 놔두고 Oracle JDK를 설치한 후, 메인을 Oracle JDK로 바꿔주든 나름대로의 셋팅이 필요하다. 1-1. OPEN JDK..
1. 개발환경- Ubuntu 12.04.4 LTS- Tomcat 7.0 2. Tomcat Profile 수정tomcat은 설치가 되었다는 가정하에 설명하겠다.$ sudo vi /etc/profile profile을 아래 문자를 추가export JAVA_HOME="/usr/lib/jvm/java-7-oracle" (1)export CATALINA_HOME="/home/www/tomcat" (2)export PATH=$PATH:$JAVA_HOME/bin:$CATALINA_HOME/binexportCLASSPATH=$JAVA_HOME/jre/lib:$JAVA_HOE/bin/tools.jar:$CATALINA_HOME/common/lib/jsp-api.jar:$CATALINA_HOME/common/lib/ser..