EJB-nicht immer eingespritzt, wodurch NullPointerException

Ich bin neu in Java EE und haben versucht, dieses Problem zu beheben, für fast eine Woche.
Dies ist der code in meiner session-bean wo ich bin immer ein NullPointerException. Fand heraus, dass der entity manager ist nicht immer gespritzt.

Den code aus der session-bean:

package session;

import entity.User;
import java.util.Iterator;
import java.util.ArrayList;
import java.util.List;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

@Stateless
public class UserFacade extends AbstractFacade<User> {
    @PersistenceContext (unitName = "EXAMPU")
    private EntityManager em;

    @Override
    protected EntityManager getEntityManager() {
    return em;
    }

    public UserFacade() {
    super(User.class);
    }

    public String validateUser(String username, String password) {
    System.out.println("in facade");    
    boolean pwdMatch = false;

    System.out.println("in UserInfoFacade validate " + em);
    try {
        System.out.println("username " + username);
        System.out.println("password " + password);

        if(em == null) {
        System.out.println("em is null");
        }
        else {
        System.out.println("em is not null");
        }

        List results = em.createNamedQuery("User.findByUserName").setParameter("userName", username).getResultList();

        if(results == null) {
        System.out.println("results is null");
        }
        else {
        System.out.println("results is not null");
        }
        System.out.println("Entity manger is open " + em.isOpen());

        if (!results.isEmpty())
        {

            Iterator userList = results.iterator();
            while (userList.hasNext())
            {
            User user = (User) userList.next();
            if (user != null)
            {
                if (user.getPassword().equals(password))
                {
                pwdMatch = true;
                }
                else {
                pwdMatch = false;
                }
            }
            else {
                return "NULL";
            }
            }
            if (pwdMatch) {
            return "MATCH";
            }
            else {
            return "NO_MATCH";
            }
        }
        else {
        return "NOT_FOUND";
        }
    } catch (Exception ex) {
        //ex.printStackTrace();
        System.out.println("Caught exception in UserFacade " + ex.toString());
    }
    return "NULL";
    }


}

persistence.xml

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
  <persistence-unit name="EXAMPU" transaction-type="JTA">
      <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider> 
      <jta-data-source>EXAM</jta-data-source>

    <exclude-unlisted-classes>false</exclude-unlisted-classes>
    <properties/>
  </persistence-unit>
</persistence>

code für managed bean : userBean

package managed;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import session.UserFacade;
import javax.ejb.EJB;

@ManagedBean
@SessionScoped
public class userBean {

    private String username, password;
    private String response="" ;
    private UserFacade userFacade;

    public userBean() {
        this.userFacade = new UserFacade();
    }

    public String getUsername() {
        return username;
    }

    public String getPassword() {
        return password;
    }

    public String getResponse() {
        return response;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public void setResponse(String response) {
        this.response = response;
    }

    public String validate() {
        System.out.println("in validate going to user facade" + username + password);
        response = userFacade.validateUser(username,password);
        System.out.println("validUser value  " + response);
        if (response.equals("MATCH")){           
            return "welcome.xhtml";
         }
        else
            return "index.xhtml";
        }
     }
}
  • Was macht Ihr persistence.xml Aussehen? Auch, was container und version?
  • Sorry, bin neu in j2ee, aber wie kann ich wissen, was container und version?
  • Die server laufen Sie auf?
  • glassfish 3.x und IDE ist netbeans 7.2
  • tut Injektion von anderen slsb Arbeit?
  • Dies ist meine erste. Versuchen, um eine login-Seite, damit nicht erstellt haben viele slsb. Versuche zu sehen, wie zum injizieren von tutorials, aber sieht aus wie ich dne die KMU-Weg
  • Können Sie postthe-code ruft die validateuser
  • Hinzugefügt haben die managed-bean-code zu

InformationsquelleAutor Newbieee | 2012-10-20
Schreibe einen Kommentar