Java Restlet获取HTTP状态代码204而不是200

Java Restlet获取HTTP状态代码204而不是200,java,google-app-engine,restlet,Java,Google App Engine,Restlet,对于第一个请求,我得到了JSON响应。从下一个请求开始,我开始获取此日志和HTTP状态代码204,即使ServerResource正在成功返回表示 org.restlet.engine.adapter.ServerAdapter commit WARNING: A response with an unavailable and potentially non empty entity was returned. Ignoring the entity for resource http://l

对于第一个请求,我得到了JSON响应。从下一个请求开始,我开始获取此日志和HTTP状态代码204,即使ServerResource正在成功返回表示

org.restlet.engine.adapter.ServerAdapter commit
WARNING: A response with an unavailable and potentially non empty entity was returned. Ignoring the entity for resource http://localhost:8888/xyz?abc=def
public class XYZ extends ServerResource {

    private static final Logger logger = Logger.getLogger("API:XyZ");

    @Get(":json")
    public Representation handleGetRequest() {
         ..
         return API_RESPONSE_JSON_REPRESENTATION_SUCCESS;
    }
}
布线线路的应用程序类

@Override
public Restlet createInboundRoot() {
    router = new Router(getContext());
    CorsService corsService = new CorsService();         
    corsService.setAllowedOrigins( new HashSet<String>(Arrays.asList("http://example.com")));
    corsService.setAllowedCredentials(true);
    getServices().add(corsService);
    router.attach("/xyz", XYZ.class);
}

释放响应后,表示状态
可用
设置为false。因此,对
ServerResource
的后续调用将返回表示,但在
handle()
方法中,由于
getResponseEntity().isAvailable()
返回
false
,因此将其设置为204

服务器资源

@Override
public Representation handle() {
       ...
        } finally {
            if (Status.CLIENT_ERROR_METHOD_NOT_ALLOWED.equals(getStatus())) {
                updateAllowedMethods();
            } else if (Status.SUCCESS_OK.equals(getStatus())
                    && (getResponseEntity() == null || !getResponseEntity()
                            .isAvailable())) {
                getLogger()
                        .fine("A response with a 200 (Ok) status should have an entity. "
                                + "Changing the status to 204 (No content).");
                setStatus(Status.SUCCESS_NO_CONTENT);
            }
        }
    }
    return result;
}
解决方案

每次返回一个新的表示形式,或者在返回表示形式之前将“可用”设置为true

org.restlet.engine.adapter.ServerAdapter commit
WARNING: A response with an unavailable and potentially non empty entity was returned. Ignoring the entity for resource http://localhost:8888/xyz?abc=def
public class XYZ extends ServerResource {

    private static final Logger logger = Logger.getLogger("API:XyZ");

    @Get(":json")
    public Representation handleGetRequest() {
         ..
         return API_RESPONSE_JSON_REPRESENTATION_SUCCESS;
    }
}