java - 如何解决与 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 注释而没有问题)。
解决方案
通过将 resteasy jar 更新到 2.1.0 版解决了这个问题。对于遇到类似问题的任何人。将 2.1.2 与 resteasy 2.1 缝合。
推荐阅读
- debugging - 为调试会话分配可执行文件名 (Visual Studio 2019)
- c# - 如何将泛型限制为枚举和整数数字类型
- java - Spring 4:带有@Bean的方法被递归拦截
- node.js - 需要角度和 Neo4j 集成的参考站点/材料
- angular - 使用 popper.js 的指令测试组件失败
- ruby - 如何检查零?对于 ERB 中的变量
- asp.net-core - 使用 linq 从实体框架核心获取 {"error":"Null TypeMapping in Sql Tree"}
- elasticsearch - Google Cloud Platform - 连接到 Elastic Search
- angularjs - 我可以使用angularJS在html中的三元运算中连接多个对象参数以形成单个字符串吗?
- spring-batch - 新执行时跳过重试