こんにちは
質問は約1歳ですが、私はRestletから始めて、「同じ」問題に遭遇しました。私はクライアントではなくサーバーについて話している(ブルーノがマークしたように、元の質問はサーバーとクライアントの部分が混在している)
質問は完全には答えられていないと思う。たとえば、Restletリソースをリクエストのセマンティック処理から分離する(ビジネスロジックをインフラストラクチャから分離する)場合は、オブザーバー、コールバック、またはsthなどのパラメーターが必要になる可能性があります。そうしないと。したがって、私が見ているように、このインスタンス化プロセスにパラメーターを送信することはできませんでした。リソースは、リクエストごとにRestletエンジンによってインスタンス化されます。したがって、パラメーターを直接渡す方法が見つかりませんでした(パラメーターはありますか?)
幸い、RestletエンジンのApplicationオブジェクトには、リソースクラス内からアクセスできます。したがって、コンポーネントを作成するクラスやサーバーなどにもアクセスできます。
リソースクラスにはsthがあります。このような
protected Application initObjLinkage(){
Context cx = this.getContext();
Client cli = cx.getClientDispatcher();
Application app = cli.getApplication() ;
return app;
}
その後、リフレクションとインターフェイスを使用して、Applicationクラス(まだリソースクラス内)のメソッドにアクセスできます。これについてリフレクションを確認してください...
Method cbMethod = app.getClass().getMethod("getFoo", parameterTypes) ;
CallbackIntf getmethodFoo = ( CallbackIntf )cbMethod.invoke( app, arguments );
String str = getmethodFoo()
私のアプリケーションでは、このメカニズムを使用して、受信したデータをビジネスロジックのクラスに提供するオブザーバーにアクセスします。このアプローチは、私のすべてのリソースクラスの標準であり、非常に均一で、標準化され、小さくなっています。
だから...これがお役に立てば幸いです。もっと簡単な方法でそれを行う{no/some}方法があることを願っています:)