Wicket并以“非HTML”回应请求

时间:2011-11-08 17:08:44

标签: servlets wicket

我确信这已在其他地方得到解答 - 但我不知道在哪里

我需要在我们的wicket网站上回复来自合作伙伴的HTTP请求。合作伙伴希望响应机构在出现错误时说“OK”或其他任何内容

这样做有“好”的方法吗? ...或者我是否会被困在我的(以前)漂亮的Wicket应用程序中添加一个servlet?

1 个答案:

答案 0 :(得分:7)

您可以使用以下资源:

class OkResource implements IResource {
    @Override
    public void respond(Attributes attributes) {
        WebResponse resp = (WebResponse) attributes.getResponse();
        resp.setContentType("text/plain");
        resp.write("OK");
    }
}

并在您的Application类中注册

@Override
protected void init() {
    super.init();
    getSharedResources().add("confirm", new OkResource());
    mountResource("confirm", new SharedResourceReference("confirm"));
}

以便可以通过http://host/app/confirm

之类的内容进行访问

请注意,在这里您注册了一个资源实例,因此它必须是线程安全的,因为多个请求可以同时调用它。

<强> [编辑] 在Wicket 1.4中:

class OkResource extends Resource {
    @Override
    public IResourceStream getResourceStream() {
        return new StringResourceStream("ok", "text/plain");
    }
}

@Override
protected void init() {
    super.init();
    getSharedResources().add("confirm", new OkResource());
    mountSharedResource("confirm", "confirm");
}