Калитка и ответы "не HTML" на запросы - PullRequest
3 голосов
/ 08 ноября 2011

Я уверен, что на это ответили где-то еще, но я не знаю, где

Мне нужно ответить на HTTP-запросы от партнера на нашем сайте калитки.Партнер ожидал, что тело ответа скажет "ОК" или что-то еще в случае ошибки

Есть ли "хороший" способ сделать это?... или я застряну, добавив сервлет в мое (ранее) красивое приложение Wicket?

1 Ответ

7 голосов
/ 08 ноября 2011

Для этого вы можете использовать ресурсы:

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

И зарегистрируйте его в своем классе приложений

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

, чтобы к нему можно было получить доступ через что-то вроде http://host/app/confirm.

Просто обратите внимание, что здесь вы регистрируете один экземпляр ресурса, поэтому он должен быть потокобезопасным, поскольку несколько запросов могут вызывать его одновременно.

[EDIT] В калитке 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");
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...