2017-05-24 11 views
0

GWTのサーブレットの実装では、onBefore/onAfterDeserializationがあります。このメソッドは、トランザクションを開始したり停止したりすることなく、何もしなくてもサービスメソッドが呼び出された後のエラー状態を適切にチェックすることはできません。シリアル化された戻り値にアクセスできます。例外がスローされた可能性があります。したがって、ロールバックするかどうかを決定することは、GWTサーブレットのパーツを書き換えない限り不可能です。Springを使用しない埋め込みjetty/GWT RemoteServiceServletへのトランザクションサポートの追加?

私はaspectjのコンパイル時の織り方について考えていました。しかし、アスペクトコンパイラを使用してモジュールを再コンパイルする必要があるため、これはNetbeansのコンパイル時保存機能では機能しません。

LTW(ロードタイムウィービング)はどうですか? Springフレームワークを使用せずにwebappコンテナにLTWを追加する方法(または例)はありますか?

私は、Javaの動的プロキシに基づいてAOPを使用することも考えていました。サーブレットの前にプロキシを置く。再度、元のサーブレットの代わりにプロキシをロードするようにJetty WebAppコンテナに指示する方法が問題になります。

既に使用可能なソリューションはありますか?

答えて

0

public String processCall(RPCRequest rpcRequest)からRemoteServiceServletRPC.invokeAndEncodeResponseの組み合わせを上書きすることができます。

数行のコードをコピー/貼り付けする必要があるので、理想的ではありませんが、ほんのわずかです。 私はいくつかのカスタマイズが必要だったのと同じ問題に遭遇し、関連するメソッドには必要なアクセス修飾子がなかったので、一部の部分をコピー/貼り付けしました。

GWT-RPCにはの新しいファンが存在しないようですので、残りの質問はコメントできませんが、すぐに使用できる解決策は見つからないと思います。レガシーシステムを維持している人だけです。したがって、私はあなたが何も見つけられない、またはもはや維持されていない解決策を見つけることを期待しています。

関連する問題