2013-02-26 75 views
1

我對Post方法有Ajax調用,它使用XML並生成PDF。 如何在AJAX中設置我的標題? 任何異常輸入將是一個很大的幫助。我沒有瀏覽,但沒有發現太多。Ajax Post Header

Ext.Ajax.request({ 
     url : "/rest/sample/" + sampleId + "/sam", 
     params : params, 
     form : downloadForm, 
     isUpload : true, 
     method : 'POST', 
     headers: {'Content-Type': 'text/xml'}, 
     scope : this, 
     xmlData: XMLSampleData 
    }); 

XMLSampleData具有Xml數據。

休息:

@Path("/sam") 
    @Produces("application/pdf") 
    @Consumes({"application/xml", "text/xml"}) 

我不斷收到此異常:

Uncaught REST Server Error: null 
javax.ws.rs.WebApplicationException 
    at com.sun.jersey.server.impl.uri.rules.TerminatingRule.accept(TerminatingRule.java:66) 
    at com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:86) 
    at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:136) 
    at com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:74) 
    at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1357) 
    at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1289) 
    at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1239) 
    at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1229) 
    at com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:420) 
    at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:497) 
    at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:684) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) 
    at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487) 
    at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:362) 
    at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) 
    at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181) 
    at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:729) 
    at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405) 
    at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:206) 
    at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) 
    at org.mortbay.jetty.Server.handle(Server.java:324) 
    at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505) 
    at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:843) 
    at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:647) 
    at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211) 
    at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380) 
    at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:395) 

回答

2

有可能是該異常不同的原因,但我遇到了它,當我實現我自己的映射器的RuntimeException。雖然我的映射器在技術上是正確的,但它似乎已將內置於澤西島的錯誤處理短路了。刪除我的映射器清除了異常,我得到了澤西島預期的錯誤代碼(405,415等)。

此外,請確保您爲每個REST資源包含一個方法。使用你的榜樣,這將是:

@Path("/sam") 
@POST        <---- Include a Method (POST, GET, PUT, etc) 
@Produces("application/pdf") 
@Consumes({"application/xml", "text/xml"}) 
0

請嘗試指定「接受」頭,等等。

headers: {'Content-Type': 'text/xml', 'Accept': 'application/pdf'},