Rumah  >  Artikel  >  Java  >  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
Susan Sarandonasal
2024-11-07 11:48:03491semak imbas

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...
}

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...
}

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:
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