Heim > Java > javaLernprogramm > Wie fügt man zustandslose EJBs in JAX-RS-Webdienste ein?

Wie fügt man zustandslose EJBs in JAX-RS-Webdienste ein?

Susan Sarandon
Freigeben: 2024-11-07 11:48:03
Original
526 Leute haben es durchsucht

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

Injizieren von EJBs in JAX-RS-Webdienste

Problembeschreibung:

Bei einem Versuch, ein zustandsloses EJB in zu injizieren Bei einem JAX-RS-Webdienst, der Anmerkungen verwendet, bleibt die EJB-Instanz in der Dienstklasse null, was bei Verwendung zu einer NullPointerException führt.

Umgebungsdetails:

  • Glassfish 3.1
  • Netbeans 6.9 RC 2
  • Java EE 6

Lösungsoptionen:

Option 1 : Injizieren Sie mithilfe der SPI des Injektionsanbieters

  • Implementieren Sie einen benutzerdefinierten Injektionsanbieter, der die EJB-Suche und -Injektion durchführt.
  • Zum Beispiel in Jersey 1.17:
import com.sun.jersey.core.spi.component.ComponentContext;
import ...
public class EJBProvider implements InjectableProvider<EJB, Type> {
    // Implementation details...
}
Nach dem Login kopieren

Option 2: Konvertieren Sie die Ressourcenklasse in ein EJB

  • Machen Sie die JAX-RS-Ressourcenklasse selbst zu einem zustandslosen EJB, damit sie ihr eigenes EJB verwalten kann Abhängigkeiten.

Option 3: CDI nutzen

  • Verwenden Sie Context and Dependency Injection (CDI), um das EJB in die JAX-RS-Ressourcenklasse zu injizieren .

Beispiel:

@Path("book")
@RequestScoped
public class BookResource {
    @Inject
    private BookEJB bookEJB;
    // Implementation details...
}
Nach dem Login kopieren

Zusätzliche Ressourcen:

  • [EJB-Injektion]( https://docs.oracle.com/javaee/7/api/javax/ejb/EJB.html)
  • [@EJB-Injection](https://stackoverflow.com/questions/1130846/ejb- Injektion)
  • [Kombination von REST Services mit EJB 3.1](https://dzone.com/articles/combining-rest-services-with-ejb-31)
  • [EJB 3.1 und REST - Der Lightweight-Hybrid](https://weblogs.java.net/blog/emcfarlane/archive/2009/12/10/ejb-31-and-rest-lightweight-hybrid)
  • [Injizieren eines EJB von einem Glas in eine Jax-RS-Klasse in einem Krieg](https://stackoverflow.com/questions/6474811/injecting-an-ejb-from-a-jar-into-a-jax-rs-class-in- a-war)

Das obige ist der detaillierte Inhalt vonWie fügt man zustandslose EJBs in JAX-RS-Webdienste ein?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage