Tommyは、静的および動的な(JSPおよびサーブレット)Webアプリケーションを実行または埋め込むことができる小さなシングルファイルの完全に構成可能なApache Tomcat Webサーバーです。
アプリは、ディレクトリとして提供したり、サーブレット、JSP、HTML、CSS、JavaScriptなどの他のすべての静的なものを含む戦争(またはzip)アーカイブとして詰め込んだりしてください。
他のプロジェクトで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(またはwar)ファイルを実行します:
java -jar tommy.jar --app MyKillerApp.warカスタムコマンドラインargを使用してzip(またはwar)ファイルを実行します。
java -jar tommy.jar --app MyKillerApp.war myparam1 myparam2 ...Webサーバーからzip(または戦争)を実行します。
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パスワードで保護されたZIP(またはWAR)アーカイブをカスタムコマンドラインargsで実行します。
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" );
// ...
Q.トムキャットスタックトレースとサーバー情報をエラーページで非表示にする方法は?
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.*でインポートします。