Membuat dan Mengkonfigurasi Pelayan Jetty 9 di Java

1. Gambaran keseluruhan

Dalam artikel ini, kita akan membincangkan tentang membuat dan mengkonfigurasi instance Jetty secara terprogram.

Jetty adalah pelayan HTTP dan servlet container yang direka agar ringan dan mudah disisipkan. Kami akan melihat bagaimana cara mengatur dan mengkonfigurasi satu atau lebih contoh pelayan.

2. Pergantungan Maven

Untuk memulakan, kami ingin menambahkan Jetty 9 dengan kebergantungan Maven berikut ke dalam pom.xml kami :

 org.eclipse.jetty jetty-server 9.4.8.v20171121   org.eclipse.jetty jetty-webapp 9.4.8.v20171121 

3. Membuat Pelayan Asas

Memutar pelayan tertanam dengan Jetty semudah menulis:

Server server = new Server(); server.start();

Menutupnya sama mudah:

server.stop();

4. Penangan

Sekarang pelayan kami sudah siap dan beroperasi, kita perlu memberi arahan mengenai apa yang harus dilakukan dengan permintaan yang masuk. Ini dapat dilakukan dengan menggunakan antara muka Handler .

Kita boleh membuatnya sendiri tetapi Jetty sudah menyediakan satu set pelaksanaan untuk kes penggunaan yang paling biasa. Mari kita lihat dua daripadanya.

4.1. Konteks WebApp

The WebAppContext kelas membolehkan anda untuk mewakilkan permintaan pengendalian untuk aplikasi web yang sedia ada. Aplikasi boleh disediakan sama ada sebagai jalur fail WAR atau sebagai jalur folder webapp.

Sekiranya kita ingin mendedahkan aplikasi dalam konteks "myApp" kita akan menulis:

Handler webAppHandler = new WebAppContext(webAppPath, "/myApp"); server.setHandler(webAppHandler);

4.2. PengendaliKoleksi

Untuk aplikasi yang kompleks, kita bahkan dapat menentukan lebih dari satu pengendali menggunakan kelas HandlerCollection .

Katakan kita telah melaksanakan dua pengendali khusus. Yang pertama hanya melakukan operasi pembalakan sementara yang kedua membuat dan menghantar kembali respons sebenar kepada pengguna. Kami ingin memproses setiap permintaan masuk dengan keduanya mengikut urutan ini.

Inilah caranya:

Handler handlers = new HandlerCollection(); handlers.addHandler(loggingRequestHandler); handlers.addHandler(customRequestHandler); server.setHandler(handlers);

5. Penyambung

Perkara seterusnya yang ingin kita lakukan ialah mengkonfigurasi alamat dan port mana yang akan didengar oleh pelayan dan menambah waktu tunggu yang tidak berfungsi.

The Server kelas mengisytiharkan dua pengeluar kemudahan yang boleh digunakan untuk mengikat ke port atau alamat tertentu.

Walaupun ini mungkin baik ketika berhadapan dengan aplikasi kecil, tidak akan cukup jika kita ingin membuka banyak sambungan pada soket yang berbeza.

Dalam keadaan ini, Jetty menyediakan antara muka Connector dan lebih khusus lagi kelas ServerConnector yang membolehkan menentukan pelbagai parameter konfigurasi sambungan:

ServerConnector connector = new ServerConnector(server); connector.setPort(80); connector.setHost("169.20.45.12"); connector.setIdleTimeout(30000); server.addConnector(connector);

Dengan konfigurasi ini, pelayan akan mendengar pada 169.20.45.12:80. Setiap sambungan yang dibuat di alamat ini akan mempunyai masa tamat selama 30 saat.

Sekiranya kita perlu mengkonfigurasi soket lain, kita boleh menambah penyambung lain.

6. Kesimpulannya

Dalam tutorial ringkas ini, kami memfokuskan pada cara menyediakan pelayan tertanam dengan Jetty. Kami juga melihat bagaimana melakukan konfigurasi lebih lanjut menggunakan Pengendali dan Penyambung .

Seperti biasa, semua kod yang digunakan di sini boleh didapati di GitHub.