Tommy adalah server web Apache Tomcat yang sepenuhnya dapat dikonfigurasi sepenuhnya dapat dikonfigurasi yang memungkinkan Anda menjalankan atau menyematkan aplikasi web statis dan dinamis (JSP dan servlets).
Aplikasi dapat disediakan sebagai direktori atau dikemas sebagai arsip perang (atau zip) yang dapat berisi servlet, JSP, HTML dan semua hal statis lainnya seperti CSS, JavaScript, dll.
Kami menggunakan server web Tommy di proyek kami yang lain:
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)
Jalankan file zip (atau perang):
java -jar tommy.jar --app MyKillerApp.warJalankan file zip (atau perang) dengan args baris perintah khusus:
java -jar tommy.jar --app MyKillerApp.war myparam1 myparam2 ...Jalankan zip (atau perang) dari server web:
java -jar tommy.jar --app https://example.com/MyKillerApp.zipJalankan aplikasi web yang meledak dari direktori:
java -jar tommy.jar --app MyKillerAppDirJalankan arsip zip (atau perang) yang dilindungi kata sandi:
java -jar tommy.jar --app MyKillerApp.zip --password mysecretJalankan arsip zip (atau perang) yang dilindungi kata sandi dengan argel baris perintah khusus:
java -jar tommy.jar --app MyKillerApp.zip --password mysecret myparam1 myparam2 .../app tommy.jar .app.war atau app.zip (arsip dapat dienkripsi) dan menyalin arsip ke direktori root tommy.jar . MEREK aplikasi Anda dengan mengganti tommy.jar menjadi MyKillerApp.jar .
Jalankan Aplikasi Tertanam:
java -jar MyKillerApp.jarJalankan Aplikasi Tertanam dengan Args Command-Line Kustom:
java -jar MyKillerApp.jar myparam1 myparam2 ...Jalankan aplikasi tertanam yang dilindungi kata sandi:
java -jar MyKillerApp.jar --password mysecretJalankan aplikasi tertanam yang dilindungi kata sandi dengan Args Command-Line Kustom:
java -jar MyKillerApp.jar --password mysecret myparam1 myparam2 .../META-INF/tomcat/conf dari arsip 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. Bagaimana cara menyembunyikan jejak Tomcat Stack dan info server di halaman kesalahan?
A. Langkah:
/META-INF/tomcat/conf/server.xml dari arsip tommy.jar<Host><Valve> berikut: < Valve className = " org.apache.catalina.valves.ErrorReportValve "
showReport = " false "
showServerInfo = " false " /> Q. Aplikasi saya gagal dengan java.lang.ClassNotFoundException: javax.servlet.*
A. Sebagai hasil dari perpindahan dari Java EE ke Jakarta EE, mulai dari V10, Apache Tomcat hanya mendukung spesifikasi Jakarta EE. javax.servlet.* Tidak lagi didukung. Ganti javax.servlet.* Impor dalam kode Anda dengan jakarta.servlet.* .