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 새롭게 추가됨