Java RESTFUL-服务 returns 500 内部服务器错误(球衣)

Java RESTFUL-Service returns 500 Internal Server Error (jersey)

我有一个 Java REST 服务,它提供一个返回 JSON 给客户端的服务(使用 Tomcat 和 Jersey)。几天来我一直在寻找这个问题,但我真的不明白,因为服务器提供了另一个调用,它几乎相同并且工作正常...... REST 服务:

//working
@GET
@Path("/listAll")
@Produces({ MediaType.APPLICATION_JSON })
public List<Route> getAllRoutes() {
    EntityManager em = getEntityManager();
    Query q = em.createQuery("select r from Route r ");
    @SuppressWarnings("unchecked")
    List<Route> routeList = q.getResultList();
    em.close();
    return routeList;
}

MySQL Table 'waypoint' 包含 3 列:ID(BIGINT)、COORDINATE(VARCHAR)、ROUTEID(BIGINT)。如果这很重要,该项目将在 Liferay 上运行……就像我说的,我再也没有 f***** 想法了:/奇怪的是,“/listAll”调用工作正常,但“/getPoints”returns 500 并且日志仅显示:

connection: 2015-01-13 18:10:47.715--ServerSession(27137311)--Thread(Thread[http-bio-8080-exec-     21,5,main])--client acquired: 18571860
[EL Finer]: transaction: 2015-01-13 18:10:47.715--ClientSession(18571860)--Thread(Thread[http-bio-8080-exec-21,5,main])--acquire unit of work: 32602042
[EL Finer]: transaction: 2015-01-13 18:10:47.715--UnitOfWork(32602042)--Thread(Thread[http-bio-8080-exec-21,5,main])--begin unit of work flush
[EL Finer]: transaction: 2015-01-13 18:10:47.715--UnitOfWork(32602042)--Thread(Thread[http-bio-8080-exec-21,5,main])--end unit of work flush
[EL Finest]: query: 2015-01-13 18:10:47.715--UnitOfWork(32602042)--Thread(Thread[http-bio-8080-exec-21,5,main])--Execute query ReadAllQuery(referenceClass=WayPoint sql="SELECT ID, ROUTEID, COORDINATE FROM WAYPOINT")
[EL Finest]: connection: 2015-01-13 18:10:47.715--ServerSession(27137311)--Connection(21934325)--Thread(Thread[http-bio-8080-exec-21,5,main])--Connection acquired from connection pool [default].
[EL Finest]: connection: 2015-01-13 18:10:47.715--ServerSession(27137311)--Connection(21934325)--Thread(Thread[http-bio-8080-exec-21,5,main])--Connection released to connection pool [default].
[EL Finer]: transaction: 2015-01-13 18:10:47.715--UnitOfWork(32602042)--Thread(Thread[http-bio-8080-exec-21,5,main])--begin unit of work commit
[EL Finer]: transaction: 2015-01-13 18:10:47.715--UnitOfWork(32602042)--Thread(Thread[http-bio-8080-exec-21,5,main])--end unit of work commit
[EL Finer]: transaction: 2015-01-13 18:10:47.715--UnitOfWork(32602042)--Thread(Thread[http-bio-8080-exec-21,5,main])--release unit of work

谢谢你们 ;)

问候

检查您 getter 中的 Long->long 转换以获得 RouteId。如果 RouteId 为 null,则在调用 getter 时会有一个从 Long 转换为 long 的隐式方法调用(这通常发生在序列化为 json 期间)。如果 RouteId 为 null,则该方法调用将在框架代码深处的某处引发 NullPointerException,当它冒泡到容器时将具体化为 500 错误。