我创建了这个宁静的网络服务,我一直遇到这个错误
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服务。
提前致谢,