Tommy 는 정적 및 동적 (JSP 및 서블릿) 웹 응용 프로그램을 실행하거나 포함시킬 수있는 작은 단일 파일 완전 구성 가능한 Apache Tomcat 웹 서버입니다.
앱은 디렉토리로 제공되거나 서블릿, JSP, HTML 및 CSS, JavaScript 등과 같은 기타 모든 정적 물건을 포함 할 수있는 전쟁 (또는 ZIP) 아카이브로 포장 될 수 있습니다.
우리는 다른 프로젝트에서 Tommy Web Server를 사용합니다.
tommy.jar 의 최신 릴리스를 다운로드하십시오 java -jar tommy.jar [options] [custom arg]...
Options:
--help print help message
--app <file|dir|URL> run app from ZIP or WAR archive, directory or URL
--port <number> HTTP TCP port number, default: 8080
--port-ssl <number> HTTPS TCP port number, default: 8443
--redirect redirect HTTP to HTTPS
--context-path <string> context path, default: /
--password <string> provide password (for encrypted ZIP (or WAR) archive)
zip (또는 전쟁) 파일 실행 :
java -jar tommy.jar --app MyKillerApp.war사용자 정의 명령 줄 Arrs와 함께 Zip (또는 War) 파일을 실행하십시오.
java -jar tommy.jar --app MyKillerApp.war myparam1 myparam2 ...웹 서버에서 Zip (또는 War) 실행 :
java -jar tommy.jar --app https://example.com/MyKillerApp.zip디렉토리에서 폭발 된 웹 앱 실행 :
java -jar tommy.jar --app MyKillerAppDir비밀번호로 보호 된 지퍼 (또는 전쟁) 아카이브 실행 :
java -jar tommy.jar --app MyKillerApp.zip --password mysecretCustom Command-Line Args와 함께 비밀번호로 보호 된 zip (또는 War) 아카이브를 실행하십시오.
java -jar tommy.jar --app MyKillerApp.zip --password mysecret myparam1 myparam2 ...tommy.jar 의 /app 디렉토리에 복사하십시오.app.war 또는 app.zip (아카이브를 암호화 할 수 있음)으로 앱을 포장하고 아카이브를 tommy.jar 의 루트 디렉토리에 복사하십시오. tommy.jar 를 MyKillerApp.jar 로 바꾸어 앱을 브랜드화하십시오.
임베디드 앱 실행 :
java -jar MyKillerApp.jarCustom Command-Line Args와 함께 임베디드 앱을 실행하십시오.
java -jar MyKillerApp.jar myparam1 myparam2 ...비밀번호로 보호 된 임베디드 앱 실행 :
java -jar MyKillerApp.jar --password mysecret사용자 정의 명령 줄 아르로 암호로 보호 된 임베디드 앱을 실행하십시오.
java -jar MyKillerApp.jar --password mysecret myparam1 myparam2 ...tommy.jar 아카이브의 /META-INF/tomcat/conf 디렉토리에서 Apache Tomcat 구성 파일을 사용합니다. // ...somewhere in your Servlet or JSP
InitialContext ctx = new InitialContext ();
/* get custom command-line args */
String [] args = ( String []) ctx . lookup ( "java:comp/env/tommy/args" );
/* get standard input (stdin) */
InputStream stdin = ( InputStream ) ctx . lookup ( "java:comp/env/tommy/stdin" );
/* get standard output (stdout) */
PrintStream stdout = ( PrintStream ) ctx . lookup ( "java:comp/env/tommy/stdout" );
/* get standard error (stderr) */
PrintStream stderr = ( PrintStream ) ctx . lookup ( "java:comp/env/tommy/stderr" );
/* get "--app" parameter value */
String app = ( String ) ctx . lookup ( "java:comp/env/tommy/app" );
// ...
Q. 오류 페이지에서 Tomcat 스택 추적 및 서버 정보를 숨기는 방법은 무엇입니까?
A. 단계 :
tommy.jar 아카이브의 파일 /META-INF/tomcat/conf/server.xml 편집하십시오<Host> 요소를 검색하십시오<Valve> 요소를 삽입하십시오. < Valve className = " org.apache.catalina.valves.ErrorReportValve "
showReport = " false "
showServerInfo = " false " /> Q. java.lang.ClassNotFoundException: javax.servlet.*
A. v10에서 시작하여 Java EE에서 Jakarta EE로 이동 한 결과 Apache Tomcat은 Jakarta EE 사양 만 지원합니다. javax.servlet.* 는 더 이상 지원되지 않습니다. javax.servlet.* 코드에서 jakarta.servlet.* .