tommy
v10.0.10
湯米(Tommy)是一個小型的單文件完全可配置的Apache Tomcat Web服務器,可讓您運行或嵌入靜態和動態(JSP和Servlets)Web應用程序。
可以將應用程序作為目錄或包裝作為戰爭(或zip)檔案的目錄提供,該檔案可以包含Servlet,JSP,HTML以及所有其他靜態物品,例如CSS,JavaScript等。
我們在其他項目中使用Tommy Web服務器:
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使用自定義命令行args運行zip(或戰爭)文件:
java -jar tommy.jar --app MyKillerApp.war myparam1 myparam2 ...從Web服務器運行ZIP(或WAR):
java -jar tommy.jar --app https://example.com/MyKillerApp.zip從目錄運行爆炸的Web應用程序:
java -jar tommy.jar --app MyKillerAppDir運行受密碼保護的ZIP(或戰爭)檔案:
java -jar tommy.jar --app MyKillerApp.zip --password mysecret使用自定義命令行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.jar運行具有自定義命令行args的嵌入式應用程序:
java -jar MyKillerApp.jar myparam1 myparam2 ...運行受密碼保護的嵌入式應用程序:
java -jar MyKillerApp.jar --password mysecret運行具有自定義命令行args的受密碼保護的嵌入式應用程序:
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" );
// ...
問:如何將tomcat堆棧跟踪和服務器信息隱藏在錯誤頁面中?
A.步驟:
/META-INF/tomcat/conf/server.xml tomcat/ tommy.jar Archive<Host>元素<Valve>元素: < Valve className = " org.apache.catalina.valves.ErrorReportValve "
showReport = " false "
showServerInfo = " false " />問:我的應用程序失敗了java.lang.ClassNotFoundException: javax.servlet.*
答:由於從v10開始,Apache Tomcat僅支持Jakarta EE Spec。 javax.servlet.*不再支持。替換javax.servlet.*用jakarta.servlet.* 。