Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menerapkan Aplikasi Java
penting
Bagian AWS OpsWorks Stacks layanan mencapai akhir masa pakai pada 26 Mei 2024 dan telah dinonaktifkan untuk pelanggan baru dan yang sudah ada. Kami sangat menyarankan pelanggan untuk memindahkan beban kerja mereka ke solusi lain sesegera mungkin. Jika Anda memiliki pertanyaan tentang migrasi, hubungi AWS Support Tim di AWS Re: posting
Topik berikut menjelaskan cara menerapkan aplikasi ke instance lapisan Java App Server. Contohnya adalah untuk JSP aplikasi, tetapi pada dasarnya Anda dapat menggunakan prosedur yang sama untuk menginstal jenis aplikasi Java lainnya.
Anda dapat menyebarkan JSP halaman dari salah satu repositori yang didukung. Jika Anda ingin menyebarkan WAR file, perhatikan bahwa AWS OpsWorks Tumpukan secara otomatis mengekstrak WAR file yang digunakan dari Amazon S3 HTTP atau arsip, tetapi tidak dari repositori Git atau Subversion. Jika Anda ingin menggunakan Git atau Subversion untuk WAR file, Anda dapat melakukan salah satu hal berikut:
-
Simpan arsip yang diekstraksi di repositori.
-
Simpan WAR file di repositori dan gunakan hook penyebaran Chef untuk mengekstrak arsip, seperti yang dijelaskan dalam contoh berikut.
Anda dapat menggunakan kait penerapan Chef untuk menjalankan aplikasi Ruby yang disediakan pengguna pada instance di salah satu dari empat tahap penerapan. Nama aplikasi menentukan tahapan. Berikut ini adalah contoh aplikasi Ruby bernamabefore_migrate.rb
, yang mengekstrak WAR file yang telah digunakan dari repositori Git atau Subversion. Nama tersebut mengaitkan aplikasi dengan hook penerapan Checkout sehingga berjalan di awal operasi penerapan, setelah kode diperiksa tetapi sebelum migrasi. Untuk informasi selengkapnya tentang cara menggunakan contoh ini, lihatMenggunakan Chef Deployment Hooks.
::Dir.glob(::File.join(release_path, '*.war')) do |archive_file| execute "unzip_#{archive_file}" do command "unzip #{archive_file}" cwd release_path end end
catatan
Saat Anda menerapkan pembaruan ke JSP aplikasi, Tomcat mungkin tidak mengenali pembaruan dan sebagai gantinya terus menjalankan versi aplikasi yang ada. Hal ini dapat terjadi, misalnya, jika Anda menerapkan aplikasi Anda sebagai file.zip yang hanya berisi halaman. JSP Untuk memastikan bahwa Tomcat menjalankan versi yang paling baru digunakan, direktori root proyek harus menyertakan INF direktori WEB - yang web.xml
berisi file. web.xml
File dapat berisi berbagai konten, tetapi berikut ini cukup untuk memastikan bahwa Tomcat mengenali pembaruan dan menjalankan versi aplikasi yang saat ini digunakan. Anda tidak perlu mengubah versi untuk setiap pembaruan. Tomcat akan mengenali pembaruan meskipun versinya tidak berubah.
<context-param> <param-name>appVersion</param-name> <param-value>0.1</param-value> </context-param>
Menerapkan Aplikasi JSP
Untuk menerapkan JSP aplikasi, tentukan nama dan informasi repositori. Anda juga dapat menentukan domain dan SSL pengaturan secara opsional. Untuk informasi selengkapnya tentang cara membuat aplikasi, lihatMenambahkan Aplikasi. Prosedur berikut menunjukkan cara membuat dan menyebarkan JSP halaman sederhana dari arsip Amazon S3 publik. Untuk informasi tentang cara menggunakan jenis repositori lain, termasuk arsip Amazon S3 pribadi, lihat. Sumber Aplikasi
Contoh berikut menunjukkan JSP halaman, yang hanya menampilkan beberapa informasi sistem.
<%@ page import="java.net.InetAddress" %> <html> <body> <% java.util.Date date = new java.util.Date(); InetAddress inetAddress = InetAddress.getLocalHost(); %> The time is <% out.println( date ); out.println("<br>Your server's hostname is "+inetAddress.getHostName()); %> <br> </body> </html>
catatan
Prosedur berikut mengasumsikan bahwa Anda sudah terbiasa dengan dasar-dasar membuat tumpukan, menambahkan instance ke lapisan, dan sebagainya. Jika Anda baru AWS OpsWorks Tumpukan, Anda harus melihat Memulai dengan Chef 11 Linux Stacks terlebih dahulu.
Untuk menyebarkan JSP halaman dari arsip Amazon S3
-
Buat tumpukan dengan lapisan Java App Server, tambahkan instance 24/7 ke layer, dan mulai.
-
Salin kode ke file bernama
simplejsp.jsp
, letakkan file di folder bernamasimplejsp
, dan buat.zip
arsip folder. Namanya sewenang-wenang; Anda dapat menggunakan nama file atau folder apa pun yang Anda inginkan. Anda juga dapat menggunakan jenis arsip lain, termasuk file gzip, bzip2, tarball, atau Java. WAR Perhatikan bahwa AWS OpsWorks Tumpukan tidak mendukung tarball yang tidak terkompresi. Untuk menyebarkan beberapa JSP halaman, sertakan dalam arsip yang sama. -
Unggah arsip ke bucket Amazon S3 dan buat file menjadi publik. Salin file URL untuk digunakan nanti. Untuk informasi selengkapnya tentang cara membuat bucket dan mengunggah file, buka Memulai Dengan Amazon Simple Storage Service.
-
Tambahkan aplikasi ke tumpukan dan tentukan pengaturan berikut:
-
Nama –
SimpleJSP
-
Jenis aplikasi -
Java
-
Jenis repositori -
Http Archive
-
Repositori URL — Amazon S3 dari file URL arsip Anda.
Gunakan nilai default untuk setelan yang tersisa, lalu klik Tambah Aplikasi untuk membuat aplikasi.
-
-
Menerapkan aplikasi ke instance Java App Server.
Anda sekarang dapat pergi ke aplikasi URL dan melihat aplikasi. Jika Anda belum menentukan domain, Anda dapat membangun URL dengan menggunakan alamat IP publik instans atau DNS nama publiknya. Untuk mendapatkan alamat IP publik instans atau DNS nama publik, buka AWS OpsWorks Tumpukan konsol dan klik nama instans pada halaman Instances untuk membuka halaman detailnya.
Sisanya URL tergantung pada nama pendek aplikasi, yang merupakan nama huruf kecil AWS OpsWorks Tumpukan dihasilkan dari nama aplikasi yang Anda tentukan saat membuat aplikasi. Misalnya nama pendek Simple JSP adalah simplejsp. Anda bisa mendapatkan nama pendek aplikasi dari halaman detailnya.
-
Jika nama singkatnya
root
, Anda dapat menggunakan salah satuhttp://
ataupublic_DNS
/appname
.jsphttp://
.public_IP
/appname
.jsp -
Jika tidak, Anda dapat menggunakan salah satu
http://
ataupublic_DNS
/app_shortname
/appname
.jsphttp://
.public_IP
/app_shortname
/appname
.jsp
Jika Anda telah menentukan domain untuk aplikasi, URL adalahhttp://
.domain
/appname
.jsp
Contohnya akan menjadi sesuatu sepertihttp://192.0.2.0/simplejsp/simplejsp.jsp
. URL
Jika Anda ingin menerapkan beberapa aplikasi ke instance yang sama, sebaiknya jangan gunakan root
sebagai nama pendek. Ini dapat menyebabkan URL konflik yang mencegah aplikasi berfungsi dengan baik. Sebagai gantinya, tetapkan nama domain yang berbeda untuk setiap aplikasi.
Menerapkan JSP Aplikasi dengan Back-End Database
JSPhalaman dapat menggunakan JDBC DataSource
objek untuk terhubung ke database back end. Anda membuat dan menerapkan aplikasi semacam itu dengan menggunakan prosedur di bagian sebelumnya, dengan satu langkah tambahan untuk mengatur koneksi.
JSPHalaman berikut menunjukkan cara menghubungkan ke DataSource
objek.
<html> <head> <title>DB Access</title> </head> <body> <%@ page language="java" import="java.sql.*,javax.naming.*,javax.sql.*" %> <% StringBuffer output = new StringBuffer(); DataSource ds = null; Connection con = null; Statement stmt = null; ResultSet rs = null; try { Context initCtx = new InitialContext(); ds = (DataSource) initCtx.lookup("java:comp/env/jdbc/mydb"); con = ds.getConnection(); output.append("Databases found:<br>"); stmt = con.createStatement(); rs = stmt.executeQuery("show databases"); while (rs.next()) { output.append(rs.getString(1)); output.append("<br>"); } } catch (Exception e) { output.append("Exception: "); output.append(e.getMessage()); output.append("<br>"); } finally { try { if (rs != null) { rs.close(); } if (stmt != null) { stmt.close(); } if (con != null) { con.close(); } } catch (Exception e) { output.append("Exception (during close of connection): "); output.append(e.getMessage()); output.append("<br>"); } } %> <%= output.toString() %> </body> </html>
AWS OpsWorks Stacks membuat dan menginisialisasi DataSource
objek, mengikatnya ke nama logis, dan mendaftarkan nama dengan layanan penamaan Java Naming dan Directory Interface ()JNDI. Nama logis lengkapnya adalahjava:comp/env/
. Anda harus menentukan bagian nama yang ditetapkan pengguna dengan menambahkan JSON atribut khusus ke konfigurasi tumpukan dan atribut penerapan untuk menentukan user-assigned-name
['opsworks_java']['datasources']
atribut, seperti yang dijelaskan di bawah ini.
Untuk menyebarkan JSP halaman yang terhubung ke database Saya SQL
-
Buat tumpukan dengan lapisan Java App Server, tambahkan instance 24/7 ke setiap lapisan, dan mulai.
-
Tambahkan lapisan database ke tumpukan. Detailnya tergantung pada database mana yang Anda gunakan.
Untuk menggunakan SQL instance Saya sebagai contoh, tambahkan SQL layer Saya ke tumpukan, tambahkan instance 24/7 ke layer, dan mulailah.
Untuk menggunakan instance Amazon RDS (MySQL) sebagai contoh:
-
Tentukan mesin SQL database Saya untuk contoh.
-
Tetapkan - AWS OpsWorks -DB-Master-Server (
security_group_id
) dan AWS - OpsWorks -Java-App-Server (security_group_id
) kelompok keamanan untuk instance. AWS OpsWorks Stacks membuat grup keamanan ini untuk Anda saat Anda membuat tumpukan pertama di wilayah tersebut. -
Buat database bernama
simplejspdb
. -
Pastikan bahwa nama pengguna dan kata sandi master tidak mengandung
&
atau karakter lain yang dapat menyebabkan kesalahan Tomcat.Khususnya selama startup Tomcat harus mengurai file konteks aplikasi web, yang merupakan XML file yang menyertakan kata sandi utama dan nama pengguna. Jika salah satu string menyertakan
&
karakter, XML parser memperlakukannya sebagai XML entitas yang cacat dan melempar pengecualian parsing, yang mencegah Tomcat memulai. Untuk informasi selengkapnya tentang file konteks aplikasi web, lihatkucing jantan: :konteks. -
Tambahkan SQL driver Saya ke lapisan Java App Server.
-
Daftarkan RDS instance dengan tumpukan Anda.
Untuk informasi selengkapnya tentang cara menggunakan RDS instans Amazon dengan AWS OpsWorks Tumpukan, lihatLapisan RDS Layanan Amazon.
-
-
Salin kode contoh ke file bernama
simplejspdb.jsp
, letakkan file di folder bernamasimplejspdb
, dan buat.zip
arsip folder. Namanya sewenang-wenang; Anda dapat menggunakan nama file atau folder apa pun yang Anda inginkan. Anda juga dapat menggunakan jenis arsip lain, termasuk gzip, bzip2, atau tarball. Untuk menyebarkan beberapa JSP halaman, sertakan dalam arsip yang sama. Untuk informasi tentang cara menerapkan aplikasi dari jenis repositori lain, lihat. Sumber Aplikasi -
Unggah arsip ke bucket Amazon S3 dan buat file menjadi publik. Salin file URL untuk digunakan nanti. Untuk informasi selengkapnya tentang cara membuat bucket dan mengunggah file, buka Memulai Dengan Amazon Simple Storage Service.
-
Tambahkan aplikasi ke tumpukan dan tentukan pengaturan berikut:
-
Nama –
SimpleJSPDB
-
Jenis aplikasi -
Java
-
Jenis sumber data — OpsWorks(untuk SQL instance Saya) atau RDS(untuk RDS instance Amazon).
-
Database instance - SQL Instance Saya yang Anda buat sebelumnya, yang biasanya bernama db-master1 (mysql), atau RDS instance Amazon, yang akan diberi nama
DB_instance_name
(mysql). -
Nama basis data —
simplejspdb
. -
Jenis repositori -
Http Archive
-
Repositori URL — Amazon S3 dari file URL arsip Anda.
Gunakan nilai default untuk setelan yang tersisa, lalu klik Tambah Aplikasi untuk membuat aplikasi.
-
-
Tambahkan JSON atribut kustom berikut ke atribut konfigurasi tumpukan, di mana simplejspdb adalah nama pendek aplikasi.
{ "opsworks_java": { "datasources": { "simplejspdb": "jdbc/mydb" } } }
AWS OpsWorks Stacks menggunakan pemetaan ini untuk menghasilkan file konteks dengan informasi database yang diperlukan.
Untuk informasi selengkapnya tentang cara menambahkan JSON atribut kustom ke atribut konfigurasi tumpukan, lihatMenggunakan Custom JSON.
-
Menerapkan aplikasi ke instance Java App Server.
Anda sekarang dapat menggunakan aplikasi URL untuk melihat aplikasi. Untuk deskripsi tentang cara membangunURL, lihatMenerapkan Aplikasi JSP.
Contohnya akan menjadi sesuatu sepertihttp://192.0.2.0/simplejspdb/simplejspdb.jsp
. URL
catatan
datasources
Atribut dapat berisi beberapa atribut. Setiap atribut diberi nama dengan nama pendek aplikasi dan disetel ke bagian yang ditetapkan pengguna yang sesuai dari nama logis. Jika Anda memiliki beberapa aplikasi, Anda dapat menggunakan nama logis terpisah, yang memerlukan kustom JSON seperti berikut ini.
{ "opsworks_java": { "datasources": { "myjavaapp": "jdbc/myappdb", "simplejsp": "jdbc/myjspdb", ... } } }