簡體   English   中英

Ember POST請求在JAX-RS中以XML jersey響應進行響應

[英]Ember POST request responding with XML jersey response in JAX-RS

我有一個余燼應用程序試圖向我的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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM