Ich entdeckte eine neue Funktion in Java erholsam bei der Verwendung von EJB 3.1 beim Lesen eines Artikels bei Adam Bien's Blog.Wie kann ein EJB 3.1 als REST-Webdienst verfügbar gemacht werden?
Die Sache ist, dass Staatenlose und Singleton Bohnen als Root-Ressourcen ausgesetzt werden können. Aber wie? Ich habe versucht, es so zu tun:
@Stateless
@LocalBean
@Path("Hybrid")
public class RESTEJBSample {
@GET
@Path("/demo")
@Produces(MediaType.TEXT_PLAIN)
public String something() {
return "I am a Hybrid!!!";
}
}
Wenn ich rufen Sie die URL http://localhost:8080/HybridSample/resources/Hybrid/demo ich erhalte einen 404-Fehler.
Appart davon und nur um sicherzustellen, dass JAXRS in meinem Projekt funktioniert, habe ich eine einfache pojo-Ressource erstellt, nur um zu testen, ob es gut funktioniert. Hier
@Path("/genericresource")
public class GenericResource {
@GET
@Path("/samplemethod")
@Produces(MediaType.TEXT_PLAIN)
public String saySomething() {
return "Something!";
}
}
wenn ich rufen Sie die URL http://localhost:8080/HybridSample/resources/genericresource/samplemethod Es funktioniert gut!
Also meine Fragen sind:
, was in meinem EJB fehlt, so kann es als Web-Service-Ressourcen arbeiten wie die Klasse GenericResource tut?
Ist eine zusätzliche Konfiguration erforderlich?
Welche Einschränkungen bestehen bei der Verwendung von EJB als Webdienst?
Gut ich habe nicht das erste wissen :) Die web.xml Option ist auch mein favoutity, mein derzeitiger web.xml lookl wie das schon. Ich habe auch die Netbeans-IDE 'New-> Webservice' verwendet und nach einem Assistenten habe ich eine Option gewählt, die besagt, dass ich den Web-Service als Stateless-Bean erstellen soll. Das eingefügt fügt die EJB in die WAR-Datei und jetzt funktioniert es gut. Mein Beispiel funktioniert jetzt gut, aber ich wäre auch interessiert zu wissen, was hinter der Szene passiert ?, welche Dateien werden von Net Beans bearbeitet? Und was sind die Grenzen dieser Bohne? Ja, ich denke, das ist auch eine wirklich coole Funktion. – sfrj
NetBeans fügt nichts hinzu: Die einzigen Dinge, die Sie tun müssen, sind die Stateless-Klasse (RESTEJBSample in Ihrem Beispiel) und der Servlet-Adapter in web.xml zu erstellen. Das Servlet macht die ganze Magie hinter den Kulissen. In Bezug auf die Einschränkungen denke ich, dass Sie versuchen sollten, Ihre Frage ein wenig zu klären. – perissf
Wenn ich Einschränkungen meine, meine ich. Sind diese Beans in der Lage, sich so zu verhalten wie in den EJB-Modulen? Was ich meine ist, gibt es irgendeine Notwendigkeit für eine Art von manueller Transaktionsverwaltung? Können sie mit JMS interagieren? ... Jetzt sind sie nicht im EJB-Container, sie sind in einer WAR-Datei. – sfrj