O Tommy é um minúsculo arquivo do Apache Tomcat totalmente configurável que permite executar ou incorporar aplicativos da Web estáticos e dinâmicos (JSP e Servlets).
Um aplicativo pode ser fornecido como um diretório ou embalado como arquivo de guerra (ou zip) que pode conter servlets, jsp, html e todas as outras coisas estáticas, como CSS, JavaScript, etc.
Usamos o servidor da Web Tommy em outros nossos projetos:
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)
Execute o arquivo zip (ou guerra):
java -jar tommy.jar --app MyKillerApp.warExecute o arquivo zip (ou guerra) com args de linha de comando personalizado:
java -jar tommy.jar --app MyKillerApp.war myparam1 myparam2 ...Execute zip (ou guerra) do servidor da web:
java -jar tommy.jar --app https://example.com/MyKillerApp.zipExecutar aplicativo da web explodido do diretório:
java -jar tommy.jar --app MyKillerAppDirExecute o arquivo ZIP (ou guerra) protegido por senha:
java -jar tommy.jar --app MyKillerApp.zip --password mysecretExecute o arquivo ZIP (ou guerra) protegido por senha com args de linha de comando personalizada:
java -jar tommy.jar --app MyKillerApp.zip --password mysecret myparam1 myparam2 .../app do tommy.jar .app.war ou app.zip (o arquivo pode ser criptografado) e copie o arquivo para o diretório raiz do tommy.jar . Marque seu aplicativo renomeando o tommy.jar para o MyKillerApp.jar .
Execute o aplicativo incorporado:
java -jar MyKillerApp.jarExecute o aplicativo incorporado com args de linha de comando personalizada:
java -jar MyKillerApp.jar myparam1 myparam2 ...Execute o aplicativo incorporado protegido por senha:
java -jar MyKillerApp.jar --password mysecretExecute o aplicativo incorporado protegido por senha com args de linha de comando personalizado:
java -jar MyKillerApp.jar --password mysecret myparam1 myparam2 .../META-INF/tomcat/conf do arquivo 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" );
// ...
P. Como ocultar o TomCat Stack Trace e o servidor Informações nas páginas de erro?
A. Etapas:
/META-INF/tomcat/conf/server.xml do arquivo tommy.jar<Host><Valve> : < Valve className = " org.apache.catalina.valves.ErrorReportValve "
showReport = " false "
showServerInfo = " false " /> P. Meu aplicativo falhou com java.lang.ClassNotFoundException: javax.servlet.*
A. Como resultado da mudança de Java Ee para Jacarta EE, a partir do V10, o Apache Tomcat suporta apenas a especificação Jacarta EE. javax.servlet.* Não é mais suportado. Substitua o javax.servlet.* Importa seu código com jakarta.servlet.* .