EJB Stateless Session Bean - konnte nicht erstellen Fehler
Lassen Sie mich beginnen, indem er darauf hinweist, dass, während ich habe mit Java SE für eine Weile jetzt, dies ist mein Erster Ausflug in die Java-EE-Gebiet. Ich bin mit Netbeans 6.9 und der Netbeans-code-generator zu tun, die meisten der schweren lifting (mehr dazu weiter unten). Die version von GlassFish 3 - die Moor-standard ein, dass die Schiffe, wenn Sie den download für Netbeans.
Habe ich eine zustandslose Session-Bean, um wieder eine einfache Zeichenfolge wie folgt:
@Stateless
public class SDBSStatelessSessionBean implements SDBSStatelessSessionBeanRemote {
@Override
public String sayHello() {
return "This seems to be working just fine.";
}
}
mit der interface-definition:
@Remote
public interface SDBSStatelessSessionBeanRemote {
String sayHello();
}
Die Klasse und das interface wurden sowohl geschaffen als mit dem "Code Einfügen" - Funktion, die Netbeans bietet. Ich Schätze diese Art, wie ich vermeiden, dass irgendwelche dummen newbie-Fehler (oh die Ironie).
Mein problem ist, dass wenn ich versuche zu nennen, die Enterprise-bean aus einem servlet (der Anruf wurde Hinzugefügt, mit der Anruf-Enterprise-Bean " - option aus dem Netbeans-code-generator) bekomme ich die folgende Fehlermeldung:
javax.ejb.EJBException: javax.ejb.CreateException: Could not create stateless EJB
Ausnahme verursacht wurde durch:
NoClassDefFoundError
Dies ist, wie das servlet macht der Aufruf:
@EJB
private SDBSStatelessSessionBeanRemote sDBSStatelessSessionBean;
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
try {
out.println("<html>");
out.println("<head>");
out.println("<title>Test Servlet</title>");
out.println("</head>");
out.println("<body>");
out.println("<p>" + sDBSStatelessSessionBean.sayHello() +"</p>");
out.println("</body>");
out.println("</html>");
} catch (Exception e) {
out.println("<p>" + e.getMessage() + "</p>");
out.println("</body>");
out.println("</html>");
} finally {
out.close();
}
}
Ich habe Angst, dass ich nicht in der Lage gewesen, eine Lösung zu finden, um dieses problem nach umfangreichen Googeln (vor allem, weil die wenigen Beiträge im forum, die scheinen zu kommen in der Nähe dieses problem enthalten zu viel Fachchinesisch für mich zu Folgen der Lösung).
Ich würde stark schätzen jede Beratung/Hilfe verweist mich in die richtige Richtung.
Vielen Dank für den Hinweis. Ich habe den edit oben.
Für die Fragen der Zukunft, ist es wahrscheinlich am besten, um den kompletten stack-trace (oder zumindest die vollen", Verursacht durch" Linie); die Nachricht von einem NoClassDefFoundError signifikant ist.
InformationsquelleAutor Insectatorious | 2011-04-29
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn dies einer lokalen EJB (in der gleichen JVM /EE container wie Ihr servlet) Sie könnten versuchen, zu erklären EJB als
@LocalBean
(unter der@Stateless
annotation). Man könnte Sie auch entfernen Sie die@Remote
- Schnittstelle (und das EJB-keine loger, es umzusetzen).So Ihre EJB-würde
Kein problem, mit EJB ' s vereinfacht EE6 (zum Glück!)
InformationsquelleAutor Jon