我有一个余烬应用程序试图向我的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();
}
}
球衣版本: jax-rs-jersey-1.10
ember中的适配器如下所示:
export default DS.RESTAdapter.extend({
host: 'http://localhost:3002',
});
先感谢您!
编辑:在邮递员中测试该请求时,一切正常。可能与ember中的标头有关吗?
问题是客户端正在发出OPTIONS请求,以检查服务器是否响应了CORS,并且未为CORS设置JAX-RS。
解决方案是编写CORS筛选器,然后将Jersy更新为2.22。因此,将HTTPServer设置更改为JdkHttpServerFactory
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句