1

レストコールにはスプリング桟橋を使用しています。

次のようにコンテキストを注入しています

@Context
private UriInfo uriInfo;

多くのサービスに uri 情報を挿入しました。nullとして注入されたものを除いて、すべて正常に機能しています。

ログを分析した後、null が挿入されたクラスで見つかったタイプは、以下に示すようにプロキシ オブジェクトとして出力されます。

Jan 18, 2013 4:32:07 PM com.sun.jersey.spi.spring.container.SpringComponentProviderFactory registerSpringBeans
INFO: Registering Spring bean, organizationProvisioningImpl, of type $Proxy53 as a root resource class 

そして、正常に注入されたクラスの場合、タイプは name of class として出力されます。

コンテキストが挿入されない理由であるプロキシである必要があります。

クラスは同様に定義されていますが、なぜこのハプニングが発生するのかはわかりません。

同じ問題を抱えているか、問題について知っている人は、私を案内してください。

**上記に加えて、プロキシ オブジェクトは、このクラス メソッドに AOP を適用したためです。これが皆さんが私を助けるのにも役立つことを願っています。

ありがとう 。

4

1 に答える 1

1
<aop:aspectj-autoproxy proxy-target-class="true"/>

これが問題の原因です。

以前は、Javaのデフォルトプロキシが使用されているため、それを使用していました。に変更したとき<aop:aspectj-autoproxy proxy-target-class="true"/>。問題は解決したようです。

経験上、CGLIB プロキシ lib に変換したときに解決した Java プロキシ ライブラリのため、苦労しているようです。

何人かの専門家がそれについてもっとコメントできるかもしれません。これらのライブラリについて読んだことがないからです。

しかし、最終的に問題は解決しました。:)

于 2013-01-18T13:33:04.293 に答える