1. 개요 

아래 내용 중 Tomcat 7.x는 7.0.55, 8.x 는 8.0.9를 기준으로 합니다.


2. server.xml

2-1. https 기본 프로토콜

7.x - 기본 프로토콜로 org.apache.coyote.http11.Http11Protocol를 사용하며, BIO implementation

8.x - 포트 기본 프로토콜로 org.apache.coyote.http11.Http11NioProtocol를 사용하며, NIO implementation

2-2. <Listener/>

8.x에서 <Listener className="org.apache.catalina.core.JasperListener" /> 삭제됨

만일, 8.x에서 org.apache.catalina.core.JasperListener 를 삭제하지 않으면, 기동 시

java.lang.ClassNotFoundException: org.apache.catalina.core.JasperListener

위 오류가 발생하면서 기동 실패 함

2-3. access log의 prefix

7.x - prefix="localhost_access_log." suffix=".txt"

8.x - prefix="localhost_access_log" suffix=".txt"

prefix 마지막에 "."이 없어졌으며, 만일 prefix 마지막에 Tomcat 7.x처럼 "."를 붙일 경우 "localhost_access_log..txt"와 같이 "."이 두개 포함되어 로그가 생성됨


3. context.xml

3-1. <WatchedResource/>

8.x 에서 <WatchedResource>${catalina.base}/conf/web.xml</WatchedResource> 새롭게 추가됨


4. logging.properties

4-1. FileHandler

7.x - org.apache.juli.FileHandler 사용

8.x - org.apache.juli.AsyncFileHandler 사용

4-2. ConsoleHandler.formatter

7.x - java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter

8.x - java.util.logging.ConsoleHandler.formatter = org.apache.juli.OneLineFormatter


5. catalina.properties

5-1. package.access

8.x에서 package.access= 에 org.apache.naming.resources 새롭게 추가됨


6. catalina.policy

6-1. WebSocket 관련 permission

7.x에서 legacy WebSocket implementation를 위해 존재하였던 permission java.lang.RuntimePermission "accessClassInPackage.org.apache.catalina.websocket" 삭제됨

6-2. Async 관련 permission

8.x에서 org.apache.juli.Async* 관련 3개 read permisson 새롭게 추가됨