gpt4 book ai didi

java - Ember POST 请求在 JAX-RS 中使用 XML Jersey 响应进行响应

转载 作者:行者123 更新时间:2023-12-02 03:01:58 24 4
gpt4 key购买 nike

我有一个 ember 应用程序试图向我的 Restful Java Web 服务 (JAX-RS) 发出发布请求。但是,该请求似乎并未到达端点。相反,Java Web 服务向 ember 发送以下响应:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<application xmlns="http://wadl.dev.java.net/2009/02">
<doc xmlns:jersey="http://jersey.java.net/" jersey:generatedBy="Jersey: 1.10 11/02/2011 04:41 PM"/>
<grammars/>
<resources base="http://localhost:3002/">
<resource path="users">
<method id="postUser" name="POST">
<response>
<representation mediaType="application/json"/>
</response>
</method>
</resource>
</resources>
</application>

Web 服务本身将以下消息打印到控制台

Feb 19, 2017 2:48:06 PM com.sun.jersey.server.wadl.generators.WadlGeneratorJAXBGrammarGenerator attachTypes
INFO: Couldn't find JAX-B element for class javax.ws.rs.core.Response
Feb 19, 2017 2:48:06 PM com.sun.jersey.server.wadl.generators.WadlGeneratorJAXBGrammarGenerator attachTypes
INFO: Couldn't find JAX-B element for class javax.ws.rs.core.Response
Feb 19, 2017 2:48:06 PM com.sun.jersey.server.wadl.generators.WadlGeneratorJAXBGrammarGenerator attachTypes
INFO: Couldn't find JAX-B element for class javax.ws.rs.core.Response
Feb 19, 2017 2:48:06 PM com.sun.jersey.server.wadl.generators.WadlGeneratorJAXBGrammarGenerator attachTypes
INFO: Couldn't find JAX-B element for class java.lang.String
Feb 19, 2017 2:48:06 PM com.sun.jersey.server.wadl.generators.WadlGeneratorJAXBGrammarGenerator attachTypes
INFO: Couldn't find JAX-B element for class javax.ws.rs.core.Response

JAX-RS 上的端点如下所示:

@Path("/users")
public class Users {
@POST
@Produces("application/json")
public Response postUser() {
System.out.println("here");
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity("{}").header("Access-Control-Allow-Origin", "*").build();
}
}

Jersey 版本:jax-rs-jersey-1.10

ember 中的适配器如下所示:

   export default DS.RESTAdapter.extend({
host: 'http://localhost:3002',
});

提前谢谢您!

编辑:在 postman 中测试请求时,一切正常。可能与 ember 中的 header 有关?

最佳答案

问题是客户端发出 OPTIONS 请求来检查服务器是否使用 CORS 进行响应,而 JAX-RS 未针对 CORS 设置。

解决方案是编写 CORS filter然后将 Jersy 更新到 2.22。因此将 HTTPServer 设置更改为 JdkHttpServerFactory

关于java - Ember POST 请求在 JAX-RS 中使用 XML Jersey 响应进行响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42328767/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com