나는 jetty-6.1.9.jar, jsp-2.1.jar, jsp-api-2.1.jar, servlet-api-2.5-6.1.9.jar를 포함하고 JRE 1.7에서 실행되는 레거시 프로젝트로 작업 중이다. .0_03.Jetty는 JSP를 어떻게 컴파일합니까?
Jetty 서버는 MyServer.java의 main 메소드 내에서 시작됩니다. WebAppContext를 작성하고 WebAppContext.setWar ($ webAppRoot)를 호출합니다. 여기서 $ webAppRoot는 일반적인 WEB-INF 구조 인 디렉토리의 전체 경로입니다.
모든 응용 프로그램 클래스와 종속 JAR은 MyServer.main을 호출하는 클래스 경로에 지정되며 WEB-INF/lib에는 JAR이없고 WEB-INF/class에는 클래스가 없습니다 (예 : 엉망입니다) . html, javascript, css 및 JSP 파일은 $ webAppRoot에 있습니다.
부두 의사가 JSP2.1을 지원한다는 것은 1.6.5가 필수 종속성임을 나타냅니다. 이 프로젝트에는 개미가 포함되어 있지 않지만 JSP는 컴파일 될 때 작동합니다.
응용 프로그램 클래스 파일을 WEB-INF/classes 및 해당 종속 JAR 파일을 WEB-INF/lib로 이동하는 경우 Jetty가 클래스를 찾을 수 없다는 오류가 발생하면 해당 클래스 중 ANT 관련 클래스를 찾을 수 없다는 오류가 발생합니다. JSP. 원래 구성에서 ANT없이 JSP를 컴파일하는 이유는 무엇입니까?하지만 WEB-INF로 작업을 옮길 때 ANT가 필요합니까?
제 생각에 JSP jar는 방금 Jetty-6.1.9 배포본을 다운로드하여 lib/jsp-2.1 디렉토리에서 찾았습니다. – NBW
-verbose : class를 실행하고 jasper 클래스 (JspServletWrapper, JspCompilationContext, JasperLoader, Compiler)가 jsp-2.1.jar에서 호출되는 ANT 종속성을 트리거하는 구성에 문제가있는 것을 발견했습니다. 결국 Jasper 네임 스페이스의 'AntJavaCompiler'가 호출됩니다. 이것은 ANT에 대한 종속성을 트리거합니다. – NBW
글래스 피시가 jsp.java.net으로 JSP impl을 옮기기 전에 좋았습니다. 그리고 우리는 svn repo에서 그것을 꺼내서 조금 패치 한 다음, 그 jar를 풀어 버리고 있다고 생각합니다. 다른 컴파일러를 지원하는 움직임은 지난 5 년 내에 있었을 것입니다. 그렇습니다 ... 당신이 지금 개미와 아마 붙어있는 것처럼 보입니다. 배포하기 전에 문제를 해결할 수 있으면 미리 컴파일해야합니다. –