Ember POST 请求响应 XML 球衣响应 JAX-RS
Ember POST request responding with XML jersey response in JAX-RS
我有一个 ember 应用程序试图向我的 Restful Java Web 服务 (JAX-RS) 发出 post 请求。但是,该请求似乎没有到达端点。相反,Java 网络服务正在向 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();
}
}
球衣版本:jax-rs-jersey-1.10
ember 中的适配器如下所示:
export default DS.RESTAdapter.extend({
host: 'http://localhost:3002',
});
提前致谢!
编辑:在 postman 中测试请求时,一切正常。可能与 ember 中的 headers 有关?
问题是客户端正在发出 OPTIONS 请求以检查服务器是否响应 CORS,而 JAX-RS 没有为 CORS 设置。
解决方案 是写 CORS filter and then to update Jersy to 2.22. Therefore changing the HTTPServer setup to JdkHttpServerFactory
我有一个 ember 应用程序试图向我的 Restful Java Web 服务 (JAX-RS) 发出 post 请求。但是,该请求似乎没有到达端点。相反,Java 网络服务正在向 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();
}
}
球衣版本:jax-rs-jersey-1.10
ember 中的适配器如下所示:
export default DS.RESTAdapter.extend({
host: 'http://localhost:3002',
});
提前致谢!
编辑:在 postman 中测试请求时,一切正常。可能与 ember 中的 headers 有关?
问题是客户端正在发出 OPTIONS 请求以检查服务器是否响应 CORS,而 JAX-RS 没有为 CORS 设置。
解决方案 是写 CORS filter and then to update Jersy to 2.22. Therefore changing the HTTPServer setup to JdkHttpServerFactory