首页 > 解决方案 > 如何解决与 rest api POST 请求相关的异常?

问题描述

我有一个来自 Angular 5 应用程序的电话:

const httpOptions = {
    headers: new HttpHeaders({ 'Accept': 'application/json', 'Content-Type': 'application/json' })
};
...
 addTrip(trip: Trip): Observable<any> {
    return this.http.post(`${this.baseUrl}/Trips/Trip`, JSON.stringify(trip), httpOptions);
  }

java代码是使用rest api的seam组件:

@Name("tripFacadeREST")
@Scope(ScopeType.EVENT)
@Path("Trips")
public class TripFacadeREST {

    @In private TripDaoHibernateImpl tripDao;

...

@POST
@Path("Trip")
@Consumes("application/json")
public Response addNewTrip(Trip newTrip) {
    tripDao.addTrip(newTrip);
    return Response.ok().entity("trip added successfully").build();
}

尝试向服务器发送 POST 请求时出现异常(tomcat - java 7):

java.lang.AbstractMethodError: javax.ws.rs.core.Response.getStatusInfo()Ljavax/ws/rs/core/Response$StatusType

相关的罐子

Tomcat日志:

0:0:0:0:0:0:0:1 - - [23/May/2018:16:07:12 +1000] “选项 /jboss-seam/seam/resource/rest/Trips/Trip HTTP/ 1.1" 200 - 0:0:0:0:0:0:0:1 - - [23/May/2018:16:07:12 +1000] "POST /jboss-seam/seam/resource/rest/Trips /Trip HTTP/1.1" 500 1386

我无法让这个调用工作,我也尝试过 PUT 但我知道 put 是用于更新,因为 id 是在服务器端创建的,所以我使用过 post. 知道如何解决这个问题吗?(我能够在同一个服务中使用 GET 注释而没有问题)。

标签: javarestseamseam2

解决方案


通过将 resteasy jar 更新到 2.1.0 版解决了这个问题。对于遇到类似问题的任何人。将 2.1.2 与 resteasy 2.1 缝合。


推荐阅读