2014-05-20 1 views
0

문제가 발생했습니다. 콜백 매개 변수가있는 경우 JsonP 표현을 반환하려고합니다. Restlet 2.2.1 데이터가 JsonpFilter로 잘린 경우

그래서 난에 내장 된 JsonpFilter을 사용하고 수행하려면 : 내 데이터가 잘립니다 것을 볼 때까지

JsonpFilter jsonpFilter = new JsonpFilter(getContext()); 
authorizer.setNext(jsonpFilter); 
jsonpFilter.setNext(router2); 

모든 것이 잘 보였다.

INFO: 2014-05-19 18:58:08 127.0.0.1 [email protected] 127.0.0.1 8889 GET /v1/customers/16021 callback=test 200 1962 0 32 http://127.0.0.1:8889 Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.137 Safari/537.36 - 
19 mai 2014 18:58:08 org.restlet.engine.adapter.ServerAdapter commit 
GRAVE: An exception occured writing the response entity 
java.io.IOException: Closed 
    at org.mortbay.jetty.AbstractGenerator$Output.write(AbstractGenerator.java:602) 
    at java.io.FilterOutputStream.write(FilterOutputStream.java:60) 
    at java.io.FilterOutputStream.write(FilterOutputStream.java:108) 
    at org.restlet.engine.io.IoUtils.copy(IoUtils.java:107) 
    at org.restlet.ext.json.JsonpRepresentation.write(JsonpRepresentation.java:149) 
    at org.restlet.engine.adapter.ServerCall.writeResponseBody(ServerCall.java:519) 
    at org.restlet.engine.adapter.ServerCall.sendResponse(ServerCall.java:463) 
    at org.restlet.ext.servlet.internal.ServletCall.sendResponse(ServletCall.java:430) 
    at org.restlet.engine.adapter.ServerAdapter.commit(ServerAdapter.java:196) 
    at org.restlet.engine.adapter.HttpServerHelper.handle(HttpServerHelper.java:153) 
    at org.restlet.ext.servlet.ServerServlet.service(ServerServlet.java:1118) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) 
    at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511) 
    at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:401) 
    at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) 
    at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182) 
    at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:766) 
    at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:450) 
    at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) 
    at org.mortbay.jetty.Server.handle(Server.java:326) 
    at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542) 
    at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:928) 
    at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:549) 
    at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212) 
    at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) 
    at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:410) 
    at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582) 
2014-05-19 18:58:08.347:WARN::Committed before 500 An exception occured writing the response entity 
19 mai 2014 18:58:08 org.restlet.engine.adapter.HttpServerHelper handle 
ATTENTION: Error while handling an HTTP server call: 
19 mai 2014 18:58:08 org.restlet.engine.adapter.HttpServerHelper handle 
INFO: Error while handling an HTTP server call 
java.lang.IllegalStateException: Committed 
    at org.mortbay.jetty.Response.resetBuffer(Response.java:1023) 
    at org.mortbay.jetty.Response.sendError(Response.java:240) 
    at org.restlet.ext.servlet.internal.ServletCall.sendResponse(ServletCall.java:397) 
    at org.restlet.engine.adapter.ServerAdapter.commit(ServerAdapter.java:214) 
    at org.restlet.engine.adapter.HttpServerHelper.handle(HttpServerHelper.java:153) 
    at org.restlet.ext.servlet.ServerServlet.service(ServerServlet.java:1118) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) 
    at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511) 
    at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:401) 
    at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) 
    at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182) 
    at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:766) 
    at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:450) 
    at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) 
    at org.mortbay.jetty.Server.handle(Server.java:326) 
    at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542) 
    at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:928) 
    at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:549) 
    at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212) 
    at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) 
    at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:410) 
    at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582) 

내가 여기 실종 무엇 : 그냥 몇 문자 누락, 문자의 수는 필터에 의해 추가 일치 여기 (test({status:200,body:{)

전체 스택 추적은? 나는 JsonPRepresentation을 보았고, 크기를 반환하는 메서드는 나에게 좋게 보인다.

미리 도움을 주셔서 감사합니다.

+0

에 따라 내 자신의 필터를 다시 작성 결국 근본 원인을 파악 할 수 없습니다? – Caleryn

+0

예 필터의 코드에는 필터 – dbaq

+0

에 의해 추가 된 문자 수를 고려한 getSize() 메소드가 있습니다. GitHub에서 버그를 기록하여 추적 할 수 있습니까? –

답변