приветВопрос о годовалом возрасте, но я только начал с Рестлета и наткнулся на «ту же» проблему.Я говорю о сервере, а не о клиенте (как отметил Бруно, первоначальный вопрос - это смешивание серверной и клиентской частей)Я думаю, что вопрос не полностью ответил.Например, если вы предпочитаете отделять ресурс Restlet от семантической обработки запроса (отделение бизнес-логики от инфраструктуры), вполне вероятно, что вам потребуются некоторые параметры, такие как Observer, или обратный вызов, или sth.остальное.Итак, как я понял, ни один параметр не может быть передан в этот процесс создания экземпляра.Ресурс создается движком Restlet для каждого запроса.Таким образом, я не нашел способа передать параметр напрямую (есть ли один?)К счастью, к классу ресурсов можно получить доступ к объекту Application движка Restlet, а также к классу, который создает компонент, сервер и т. Д.В классе ресурсов у меня есть что-н.как это
protected Application initObjLinkage(){
Context cx = this.getContext();
Client cli = cx.getClientDispatcher();
Application app = cli.getApplication() ;
return app;
}
Впоследствии вы можете использовать отражение и интерфейс для доступа к методу в классе Application (все еще в классе ресурсов), отметьте reflections об этом ...
Method cbMethod = app.getClass().getMethod("getFoo", parameterTypes) ;
CallbackIntf getmethodFoo = ( CallbackIntf )cbMethod.invoke( app, arguments );
String str = getmethodFoo()
В моем приложении я использую этот механизм для получения доступа к наблюдателю , который поставляет полученные данные в классы для бизнес-логики.Этот подход является стандартом для всех моих классов ресурсов, который делает их достаточно однородными, стандартизированными и небольшими.Итак ... Я просто надеюсь, что это будет полезно и что {нет / некоторые} способ сделать это гораздо более простым способом:)