Leutselig Bean Java Glassfish-EJB tutorial Fragen

Habe ich nach der affableBean tutorial von NetBeans Standort hier .

Code Repo hier .

Ich habe laufen in ein Problem, wo ich nicht imstande bin, das Absenden einer Bestellung ("checkout".jsp).
Wenn ich das Formular abschicken der Daten, erhalte ich einen http 500 status und die folgenden Fehler:

WARNING: EJB5184:A system exception occurred during an invocation on EJB OrderManager, method: public java.util.Map session.OrderManager.getOrderDetails(int)
WARNING: javax.ejb.EJBException at controller.ControllerServlet.doPost(ControllerServlet.java:184)
Caused by: java.lang.NullPointerException at session.OrderManager.getOrderDetails(OrderManager.java:111)

Linie 184 von ControllerServlet ist: Karte orderMap =
orderManager.getOrderDetails(orderId);

- Linie 111 der OrderManager ist: Kunde Kunde = um.getCustomer();

Während der Ausführung einer debug-Sitzung, es scheint, dass der Täter ist die Zeile in OrderManger innerhalb der getOrderDetails() Methode. Was ich sagen kann, ist,die Zeile soll zum Auffüllen des customer-Objekt mit den Bestellungen vom Kunden.

Suchen, wo die .getCustomer () - Methode stammt es aus der CustomerOrder Entity-Klasse:

private Customer customer;    
...
public Customer getCustomer() {
        return customer;
    }

Scheint einfach genug, es gibt das Kunde-Objekt. Was mir rätselhaft ist, warum ich würde erhalten eine nullpointer exception, warum ist dieses Objekt leer?

Ich glaube, es kann sich auf meine entity-Klasse wird nicht korrekt, dies wiederum würde bedeuten, meine Datenbank, dass ich nach vorne entwickelt, der aus einem entity-Diagramm wäre falsch, bin ich auf dem richtigen Weg?

Edit:

Abgenommen try-catch-block aus der placeOrder() Methode innerhalb der ordermanager Klasse
durch ändern der Rückgabewert 0.

habe ich in weitere Probleme:

WARNING: EJB5184:A system exception occurred during an invocation on EJB OrderManager, method: public int session.OrderManager.placeOrder(java.lang.String,....,cart.ShoppingCart)
WARNING: javax.ejb.EJBException
javax.validation.ConstraintViolationException: Bean Validation constraint(s) violated while executing Automatic Bean Validation on callback event:'prePersist'.**

at session.OrderManager.addCustomer(OrderManager.java:58) (*em.persist()*)
    at session.OrderManager.placeOrder(OrderManager.java:42)   (*Customer customer = addCustomer()*)

Ich bin derzeit Lesen, wie Durchlaufen Sie die Fehler suchen und finden, was Einschränkung, die ich bin, zu scheitern.

Edit2:

Debuggen der addCustomer Methode sehe ich die Kunden-id null ist, ist das okay? ich nehme an, es ist so, wie die Datenbank-ID-Feld auf auto-increment, immer noch, scheint seltsam für eine einstellbare id-Feld in der Entität überhaupt in diesem Fall.

Edit3:
Stellt sich heraus, das auto erzeugt [NotNull] tags in meinem entity-Klassen wurden verursacht bean-Validierung zu Versagen, entfernt die tags und es funktioniert gut.

Sie würde besser eine neue Frage

InformationsquelleAutor Chomp | 2012-04-03

Schreibe einen Kommentar