2017-02-19 160 views
0

我有一个试图向我的Restful Java Web服务(JAX-RS)发出发布请求的应用程序应用程序。但是,该请求似乎没有达到端点。但是,Java Web服务发送以下响应烬:Ember POST请求响应JAX-RS中的XML球衣响应

<?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

适配器我n ember看起来像这样:

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

提前致谢!

编辑:当在邮递员测试请求时,它都可以正常工作,没有问题。可能是与烬中的标题有关?

回答

0

问题是客户端正在做出OPTIONS请求来检查服务器是否用CORS响应,并且JAX-RS没有为CORS设置。

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