Tomcat : 앱 배포 중에 항아리를 제외 할 수 있습니까?


8

기본적으로 Tomcat은 웹앱이 Tomcat 배포의 일부인 여러 .jar (예 : 서블릿 및 JSP API)을로드하지 못하게합니다. 다른 애플리케이션도 제외되도록 구성 할 수 있습니까?

구성만으로는 수행 할 수없는 경우 Tomcat은 자원 검증을위한 확장 점을 제공합니까?

공유 로깅 라이브러리를 사용하고 잘못된 앱이 구성을 방해하지 않는지 확인해야합니다.

이것이 내가 Tomcat 시작 로그에서 언급 한 것입니다.

Oct 1, 2011 5:53:40 AM org.apache.catalina.loader.WebappClassLoader validateJarFile
INFO: validateJarFile(D:\tomcat\myapp\WEB-INF\lib\servlet-api.jar) - jar not loaded.
See Servlet Spec 2.3, section 9.7.2.
Offending class: javax/servlet/Servlet.class

나는 tomcat을 생각하지 않는다. classpath에서 jar가 먼저 오는 클래스 로딩 시퀀스의 문제 만 제외하십시오. 당신은 이것 이후일지도 모른다. stackoverflow.com/questions/267953/managing-libraries-in-tomcat

@Shahzeb : 예를 추가했습니다. 이것은 실제로 다른 클래스 로더가 상호 작용하는 방식에 관한 것이 아닙니다. 웹 응용 프로그램이로드하려고하는 리소스를 확인할 수 있기를 바랍니다.
Dmitri

답변:


6

Tomcat 설명서org.apache.catalina.loader.WebappClassLoader 에서 언급 한대로 확장되는 사용자 지정 로더를 사용하여 웹 앱이로드하는 내용을 확인 / 필터링 합니다 .

시작을 위해 필터링 을 구현하는 표준의 Tomcat 구현 (7.0.19)을WebAppClassLoader 확인하십시오 . 아마 그 클래스를 무시하고 단지로 좀 더 많은 항목을 넣어 충분 필드 와 .javax.servlet.Servletprotected String[]triggerspackageTriggers


1
물론, 사용자 정의가 WebappClassLoader에 자신의 JAR에 가야 TOMCAT_HOME/lib단지 명백한 :) 상태로, 멀리 웹 응용 프로그램에서
필립 Reichart
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.