Isi kandungan:
- Menentukan perkhidmatan web
- Tujuan perkhidmatan web anda adalah untuk membolehkan pelanggan jauh mengakses perkhidmatan yang anda berikan. Perkhidmatan ini, yang dipanggil komponen
- Dalam bahagian ini, anda membina perkhidmatan web segerak menggunakan kelas Java biasa dan kemudian menggunakan EJB sesi tanpa kerakyatan. Pertama, anda mesti menulis komponen belakang. Ini akan sama ada kelas Jawa, EJB tanpa kewarganegaraan, atau pengguna kaedah JMS.
Video: PUSPAKOM Monopoli? 2024
A perkhidmatan web adalah prosedur jauh yang tersedia untuk pelanggan melalui TCP / IP, biasanya menggunakan HTTP atau SMTP sebagai pengangkutan dan XML untuk pengekodan. Perkhidmatan web diterangkan menggunakan notasi XML standard yang dipanggil penerangan perkhidmatan . Perkhidmatan web memenuhi tugas tunggal atau satu set tugas.
Semua butiran perkhidmatan web tersembunyi dari pengguna, dan perkhidmatan itu adalah bebas daripada perkakasan dan perisian. Ini menggalakkan pemaju perisian untuk membina aplikasi yang terdiri daripada perkhidmatan kecil, individu, yang kemudiannya boleh digunakan secara bersendirian atau dalam kumpulan untuk melaksanakan tugas yang lebih kompleks.
Anda boleh membuat perkhidmatan web dalam dua cara: secara manual, melalui penciptaan fail sumber dan konfigurasi Java, atau menggunakan sistem GUI yang disebut Bengkel WebLogic. Dalam artikel ini, anda membuat perkhidmatan web secara manual.
Menentukan perkhidmatan web
Sebelum anda membuat perkhidmatan web anda, anda harus menentukan apa yang akan dilakukannya. Ini membolehkan anda membina dengan betul antara muka yang aplikasi lain mesti mematuhi jika mereka mahu berkomunikasi dengan perkhidmatan web anda.
Keputusan reka bentuk yang paling asas adalah jenis dua jenis perkhidmatan web yang akan anda buat:
- Perkhidmatan segerak
- Perkhidmatan segerak
A yang lalai, bermula apabila perkhidmatan web menerima mesej. Perkhidmatan web ini bertindak dengan serta-merta. Perkhidmatan web segerak paling berguna apabila program klien memerlukan data yang dikembalikan dari permintaan segera. Contoh jenis data ini ialah petikan saham semasa bagi syarikat tertentu.
asynchronous tidak segerak, jadi mesej boleh ditukar dengan bebas antara klien dan perkhidmatan web. Mesej dari satu pihak tidak memaksa pihak lain menghantar mesej yang sepadan. Apabila klien menghantar mesej ke perkhidmatan web asynchronous, pelanggan tidak menunggu mesej kembali dari perkhidmatan web. Perkhidmatan web boleh menghantar mesej kembali kepada pelanggan pada masa yang akan datang, tetapi tidak ada yang secara inheren mengikat mesej ini dengan mesej asal yang dihantar oleh klien. Perkhidmatan web asynchronous adalah pilihan yang baik apabila anda menghantar maklumat yang tidak memerlukan respons. Sebagai contoh, anda mungkin mahu menghantar mesej ke beberapa pelayan anda, memberikan mesej ucapan baru untuk dipaparkan kepada pengguna.
Memilih dan membina komponen backend
Tujuan perkhidmatan web anda adalah untuk membolehkan pelanggan jauh mengakses perkhidmatan yang anda berikan. Perkhidmatan ini, yang dipanggil komponen
backend, mengambil bentuk kod Java.Anda boleh membina komponen backend anda sebagai salah satu daripada berikut: Kaedah sesi tanpa keraguan EJB
- Kaedah kelas Java
- Pengguna kaedah JMS
- WebLogic boleh membuat mana-mana item ini tersedia sebagai perkhidmatan web. Ini menjadikannya mudah untuk membungkus kod Java sedia ada sebagai perkhidmatan web. Sekiranya anda telah membuat EJBs sesi tanpa kerakyatan, anda boleh membungkusnya sebagai perkhidmatan web. Atau jika kod anda wujud dalam kelas Java biasa, anda boleh memberikan akses kepada kelas anda sebagai perkhidmatan web. Anda juga boleh menggunakan pemesejan JMS sebagai perkhidmatan backend untuk perkhidmatan web anda.
Membina perkhidmatan web segerak
Dalam bahagian ini, anda membina perkhidmatan web segerak menggunakan kelas Java biasa dan kemudian menggunakan EJB sesi tanpa kerakyatan. Pertama, anda mesti menulis komponen belakang. Ini akan sama ada kelas Jawa, EJB tanpa kewarganegaraan, atau pengguna kaedah JMS.
Bekerja dengan komponen backend kelas Java
Anda mesti mengikuti beberapa peraturan apabila melaksanakan operasi perkhidmatan web menggunakan kelas Java:
Jangan mulailah sebarang thread. Peraturan ini terpakai kepada semua kod Java yang berjalan di Server WebLogic.
- Tentukan pembina tanpa hujah lalai.
- Tentukan sebagai awam kaedah kelas Java yang akan didedahkan sebagai operasi perkhidmatan web.
- Anda mesti menulis kod Java selamat buatan kerana WebLogic Server hanya mengekalkan satu contoh kelas Java yang melaksanakan operasi perkhidmatan web, dan setiap penyerahan perkhidmatan web menggunakan contoh yang sama.
Sebagai contoh melaksanakan operasi perkhidmatan web Web dengan kelas Java, pergi ke direktori berikut:
WL_HOMEsamplesserversrcexampleswebservicesbasicjavaclass
dimana
WL_HOME merujuk kepada direktori utama pemasangan WebLogic Server anda. Pada sistem Windows, direktori ini biasanya C: beaweblogic81. Listing 1 menunjukkan kelas Java yang boleh anda gunakan sebagai komponen backend. Kelas Java ini mengandungi satu kaedah, bernama sampleMethod, yang menerima int dan mengembalikan String.
Senarai 1: Komponen Backend Kelas Java
pakej com. dummies. ejb;
sampel awam SampleBackendComponent
{
public String sampleMethod (int num)
{
switch (num)
{
case 1: return "One";
kes 2: kembali "Dua";
kes 3: kembali "Tiga";
kes 4: kembali "Empat";
kes 5: kembali "Lima";
kes 6: kembali "Enam";
kes 7: kembali "Tujuh";
kes 8: kembali "Lapan";
kes 9: kembali "Sembilan";
kes 10: kembali "Sepuluh";
lalai: kembali "Beberapa Nombor";
}
}
}
Bekerja dengan komponen tanpa keraguan komponen EJB backend
Anda juga boleh memilih untuk membina komponen backend anda sebagai EJB sesi stateless. Menulis kod Java untuk sesi tanpa kerakyatan EJB untuk perkhidmatan web tidak berbeza daripada menulis EJB mandiri.
Dalam perkhidmatan web. deskriptor penyebaran xml, anda boleh menentukan bahawa operasi perkhidmatan web adalah satu cara, yang bermaksud bahawa aplikasi klien yang memanggil perkhidmatan web tidak menunggu respon.Apabila anda menulis kod Java untuk kaedah EJB yang melaksanakan jenis operasi ini, anda mesti menentukan bahawa ia mengembalikan kekosongan.
Apabila memilih antara menggunakan komponen backend kelas EJB atau Java, pertimbangkan cara lain di mana komponen sokongan belakang anda akan digunakan. Jika komponen backend anda biasanya diakses sebagai EJB, buatlah ia sebagai EJB. Ini membolehkan anda menggunakan kod yang sama untuk kedua-dua EJB dan perkhidmatan web anda.
Lebih banyak sumber diperlukan untuk memanggil perkhidmatan web daripada memanggil EJB. Kerana ini, adalah perkara biasa untuk membuat semua komponen backend anda sebagai EJB dan kemudian membolehkan aplikasi luaran untuk mengakses komponen backend anda sebagai perkhidmatan web. Aplikasi tempatan anda sendiri, yang berjalan pada rangkaian yang sama dengan pelayan WebLogic anda, boleh menggunakan kaedah panggilan EJB yang lebih cepat.
Listing 2 menunjukkan fail kacang yang melaksanakan komponen backend EJB. Komponen backend EJB hampir sama dengan komponen backend kelas Java. Perbezaan utama ialah kod tambahan yang digunakan untuk menyokong EJB.
Senarai 2: Komponen Backend EJB
pakej com. dummies. ejb;
javax import. ejb. *;
java import. rmi. *;
javax import. hayun. *;
SampleBean kelas awam melaksanakan SessionBean
{
private SessionContext stx;
// Diperlukan kaedah, tidak digunakan oleh jenis kacang ini
public void ejbCreate () {}
public void ejbRemove () {}
public void ejbActivate () {}
ejbPassivate () {}
// setter untuk SessionContext
void public setSessionContext (SessionContext ctx)
{
ctx = ini. stx;
}
// kaedah sampel
public String sampleMethod (int num)
melemparkan RemoteException
{
switch (num)
Satu ";
kes 2: kembali "Dua";
kes 3: kembali "Tiga";
kes 4: kembali "Empat";
kes 5: kembali "Lima";
kes 6: kembali "Enam";
kes 7: kembali "Tujuh";
kes 8: kembali "Lapan";
kes 9: kembali "Sembilan";
kes 10: kembali "Sepuluh";
lalai: kembali "Beberapa Nombor";
}
}
}
Anda mesti menentukan bahawa kacang itu adalah EJB tanpa kewarganegaraan dalam ejb-jar. fail xml, yang ditunjukkan dalam Penyenaraian 3. Anda boleh menggunakan banyak nod dan atribut.
Senarai 3: ejb-jar. Fail xml untuk Component Backend
' // java. matahari. com / dtd / ejb-jar_2_0. dtd '>
SampleObject
com. dummies. ejb. SampleHome
com. dummies. ejb. Contoh
com. dummies. ejb. SampleBean
Stateless
Container