Tommy -это крошечный полностью настраиваемый веб-сервер Apache Tomcat, который позволяет запускать или внедрять статические и динамические (JSP и Servlets) веб-приложения.
Приложение может быть предоставлено в качестве каталога или упаковано в виде архива войны (или молнии), который может содержать сервлеты, JSP, HTML и все другие статические вещи, такие как CSS, JavaScript и т. Д.
Мы используем веб -сервер Tommy в других наших проектах:
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Запустите файл Zip (или War) с помощью пользовательской командной строки Args:
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Запустите защищенную паролем архив ZIP (или войны):
java -jar tommy.jar --app MyKillerApp.zip --password mysecretЗапустите защищенную паролем архив Zip (или War) с помощью пользовательской командной строки Args:
java -jar tommy.jar --app MyKillerApp.zip --password mysecret myparam1 myparam2 .../app tommy.jar .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 .../META-INF/tomcat/conf архива tommy.jar . // ...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 Stack и сервере на страницах ошибок?
А. Шаги:
/META-INF/tomcat/conf/server.xml из архива tommy.jar<Host><Valve> : < Valve className = " org.apache.catalina.valves.ErrorReportValve "
showReport = " false "
showServerInfo = " false " /> В. Мое приложение не удалось с java.lang.ClassNotFoundException: javax.servlet.*
A. В результате перехода от Java EE в Jakarta EE, начиная с V10, Apache Tomcat поддерживает только спецификацию Jakarta EE. javax.servlet.* больше не поддерживается. Замените javax.servlet.* Импорт в вашем коде с jakarta.servlet.* .