Rumah > Java > javaTutorial > Bagaimana untuk Menyuntik EJB Tanpa Kewarganegaraan ke dalam Perkhidmatan Web JAX-RS?

Bagaimana untuk Menyuntik EJB Tanpa Kewarganegaraan ke dalam Perkhidmatan Web JAX-RS?

Susan Sarandon
Lepaskan: 2024-11-07 11:48:03
asal
580 orang telah melayarinya

How to Inject Stateless EJBs into JAX-RS Web Services?

Menyuntik EJB ke dalam Perkhidmatan Web JAX-RS

Penerangan Isu:

Dalam percubaan untuk menyuntik EJB Tanpa Kewarganegaraan ke dalam perkhidmatan web JAX-RS menggunakan anotasi, contoh EJB kekal batal dalam kelas perkhidmatan, mengakibatkan NullPointerException semasa digunakan.

Butiran Alam Sekitar:

  • Glassfish 3.1
  • Netbeans 6.9 RC 2
  • Java 6

Pilihan Penyelesaian:

Pilihan 1: Suntikan menggunakan Pembekal Suntikan SPI

  • Laksanakan pembekal suntikan tersuai yang melakukan carian dan suntikan EJB.
  • Sebagai contoh, dalam Jersi 1.17:
import com.sun.jersey.core.spi.component.ComponentContext;
import ...
public class EJBProvider implements InjectableProvider<EJB, Type> {
    // Implementation details...
}
Salin selepas log masuk

Pilihan 2: Tukar Kelas Sumber kepada EJB

  • Jadikan kelas sumber JAX-RS sebagai Stateless EJB sendiri, membenarkannya mengurus kebergantungannya sendiri.

Pilihan 3: Leverage CDI

  • Gunakan Context and Dependency Injection (CDI) untuk menyuntik EJB ke dalam kelas sumber JAX-RS.

Contoh:

@Path("book")
@RequestScoped
public class BookResource {
    @Inject
    private BookEJB bookEJB;
    // Implementation details...
}
Salin selepas log masuk

Tambahan Sumber:

  • [EJB Injection](https://docs.oracle.com/javaee/7/api/javax/ejb/EJB.html)
  • [ @EJB Suntikan](https://stackoverflow.com/questions/1130846/ejb-injection)
  • [Menggabungkan Perkhidmatan REST dengan EJB 3.1](https://dzone.com/articles/combining-rest-services- with-ejb-31)
  • [EJB 3.1 and REST - The Lightweight Hibrid](https://weblogs.java.net/blog/emcfarlane/archive/2009/12/10/ejb-31-and-rest-lightweight-hybrid)
  • [Menyuntik EJB daripada balang ke dalam kelas jax-rs dalam a perang](https://stackoverflow.com/questions/6474811/injecting-an-ejb-from-a-jar-into-a-jax-rs-class-in-a-war)

Atas ialah kandungan terperinci Bagaimana untuk Menyuntik EJB Tanpa Kewarganegaraan ke dalam Perkhidmatan Web JAX-RS?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan