在Restful Web Service中初始化EntityManager时出错

时间:2014-04-20 18:46:20

标签: java web-services rest entitymanager

我创建了这个宁静的网络服务,我一直遇到这个错误

java.lang.NullPointerException
    com.racemanagement.stt4.service.UsersRESTFacade.find(UsersRESTFacade.java:71)
    sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    java.lang.reflect.Method.invoke(Method.java:483)
    org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:167)
    org.jboss.resteasy.core.ResourceMethod.invokeOnTarget(ResourceMethod.java:269)
    org.jboss.resteasy.core.ResourceMethod.invoke(ResourceMethod.java:227)
    org.jboss.resteasy.core.ResourceMethod.invoke(ResourceMethod.java:216)
    org.jboss.resteasy.core.SynchronousDispatcher.getResponse(SynchronousDispatcher.java:542)
    org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:524)
    org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:126)
    org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:208)
    org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:55)
    org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:50)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:723)

这是导致上一个错误的代码段:

@Path("/users")
@Singleton
@Autowire
public class UsersRESTFacade {
    @PersistenceContext(unitName = "com.racemanagement_STT4_war_1.0-SNAPSHOTPU")
    protected EntityManager entityManager;
...

@GET
@Path("/get/{id}")
@Produces({"application/xml", "application/json"})
@Transactional
public Users find(@PathParam("id") Integer id) {

   return entityManager.find(Users.class, id);

}

这是persistence.xml

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.0" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">
  <persistence-unit name="com.racemanagement_STT4_war_1.0-SNAPSHOTPU" transaction-type="RESOURCE_LOCAL">
    <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
    <class>com.racemanagement.stt4.Scrutiny</class>
    <class>com.racemanagement.stt4.Points</class>
    <class>com.racemanagement.stt4.Checkin</class>
    <class>com.racemanagement.stt4.Users</class>
    <class>com.racemanagement.stt4.Times</class>
    <class>com.racemanagement.stt4.Events</class>
    <exclude-unlisted-classes>false</exclude-unlisted-classes>
    <properties>
      <property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/stt?zeroDateTimeBehavior=convertToNull"/>
      <property name="javax.persistence.jdbc.user" value="root"/>
      <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/>
      <property name="javax.persistence.jdbc.password" value="secret"/>
    </properties>
  </persistence-unit>
</persistence>

我基本上使用netbeans创建了这个Web服务。我创建了一个maven Web应用程序项目。然后我在pom.xml中添加了所需的依赖项。之后,我选择从数据库向导添加restful Web服务。然后我开始编辑@Path注释。此外,我相应地调整了web.xml,以便我可以访问Web服务。

提前致谢,

0 个答案:

没有答案
相关问题