ervicio web de @RESTful: java.lang.NullPointerException service.AbstractFacade.findAll

Creé un servicio web XML simple utilizando el asistente "RESTful Web Services from Database ..." de NetBeans 7. En este punto, quiero publicar una lista de usuarios de la base de datos mySQL asociada.

Cuando intento acceder al servicio a través de su URL (http: // localhost: 8080 / database / resources / users), aparece un error que dice "java.lang.NullPointerException". El seguimiento de la pila:

service.AbstractFacade.findAll(AbstractFacade.java:41)
service.UserFacade.findAll(UserFacade.java:51)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:597)
com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$TypeOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:165)
com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:67)
com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:276)
com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:83)
com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:133)
com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:71
com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1171)  com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1103)  com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1053)
com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1043)
com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:406)
com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:477)
com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:662)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)

Entidad de usuario:

package entities;
...
@Entity
@Table(name="users")
@XmlRootElement
@NamedQueries({
    @NamedQuery(name = "Users.findAll", query = "SELECT u FROM Users u"), 
...

También he cambiado la consulta con nombre a User.findAll en caso de que los nombres deban alinearse con el nombre de la entidad. Esto no resolvió el problema

No estoy seguro de si es 'normal' o no, pero el asistente creó una clase UserFacade bastante escasa; Agregué los métodos faltantes después de investigar el tema. Además, parece que falta el paquete javax.ejb.Stateless (quizás no en CLASSPATH de mi estación de trabajo); esta es la razón por la cual la anotación @Stateless está deshabilitada.

lase @UserFacade:

//@Stateless
@Path("users")
public class UserFacade extends AbstractFacade<User> {

    @PersistenceContext(unitName="databasePU") 
    private EntityManager em;

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

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

    @GET
    @Path("{id}")
    @Produces({"application/xml", "application/json"})
    public User find(@PathParam("id") BigDecimal id) {
        return super.find(id);
    }

    @GET
    @Override
    @Produces({"application/xml", "application/json"})
    public List<User> findAll() {
        return super.findAll();
    } 

}

Exception se lanza en la primera línea del método findAll de AbstractFacade:

public List<T> findAll() {  

  javax.persistence.criteria.CriteriaQuery cq = getEntityManager().getCriteriaBuilder().createQuery();
  ...
}

Preguntas:

¿Se requiere la anotación @Stateless para que esto funcione? ¿Este patrón requiere J2EE 6 en lugar de J2SE 6 (que es lo que está instalado en mi estación de trabajo OS X)? El espacio de nombres 'javax.ejb' parece sugerir Enterprise Java Beans.

** editar **

Java SE 6 (1.6.0_29-b11-402)

Respuestas a la pregunta(4)

Su respuesta a la pregunta