2011-08-04 12 views
0

Springインターセプタの使用に問題があります。私はいくつかの初期化を行うためにインターセプターでラップしようとしているCXFサービスエンドポイントメソッドを持っています。なんらかの理由で、インターセプタが呼び出されていません。あなたが見ることができるように、私は方法のカップルが検索しsearchJSONpありCXFエンドポイントクラスAcadConnectChannelResourceをしましたSpring Methodインターセプタの問題

<jaxrs:server id="acadConnectServer" address="/rest/acadconnect3"> 
    <jaxrs:serviceBeans> 
     <ref bean="acadConnectResource" /> 
    </jaxrs:serviceBeans> 
</jaxrs:server> 
<bean id="acadConnectResource" 
    class="com.test.connectchannel.service.AcadConnectChannelResource" /> 
<bean id="connectResource" class="org.springframework.aop.framework.ProxyFactoryBean"> 
    <property name="target" ref="acadConnectResource" /> 
    <property name="interceptorNames"> 
     <list> 
      <value>methodPointCut</value> 
     </list> 
    </property> 
</bean> 
<bean id="methodPointCut" 
    class="org.springframework.aop.support.NameMatchMethodPointcutAdvisor"> 
    <property name="advice"> 
     <ref local="methodInterceptor" /> 
    </property> 
    <property name="mappedNames"> 
     <list> 
      <value>search</value> 
      <value>searchJSONP</value> 
     </list> 
    </property> 
</bean> 
<bean id="methodInterceptor" 
    class="com.test.connectchannel.util.ConnectChannelInterceptor"> 
</bean> 

:ここに私の春のエントリーです。私はNamed Method Cutインターセプタを作成してこれらの2つのメソッド呼び出しをインターセプトし、カスタムインターセプタクラスを使用して初期化しました。しかし、メソッドが呼び出されるたびにインターセプタは呼び出されません。

私はここで何が欠けているかわからない、任意のポインタが評価されます。

-Thanks

+0

うーん...すべてうまく見えます。 mappedNames要素の値に*を入れてみましたか? *がこのimplで動作しない場合は... RegexpMethodPointcutAdvisorを試してみてください。これは私の春のポイントカットがこれを使っているので、確かに... *私に教えてください。 P.Sまだ行われていない場合は、インターセプタにトレースを入れて*でどこかに入るかどうかを確認してください。 – Cygnusx1

+0

@ Cygnusx1使用していませんでした – Shamik

答えて

0

私は完全に間違っているかもしれないが、あなたはあなたの<jaxrs:server>

<ref bean="connectResource" /> 

代わりの

<ref bean="acadConnectResource" /> 

をしたくないですか?リソースをプロキシしていますが、プロキシの代わりにrawリソースを使用しています。

+0

私も試みましたが、javax.ws.rs.WebApplicationExceptionに起因するorg.apache.cxf.service.factory.ServiceConstructionExceptionがありました。 – Shamik

+0

それは間違っているとは限りません。他の場所で他の問題が発生している可能性があります。私はCXFを知らないが、スタックトレースを投稿すると、間違ったことを指摘したり、正しい方向に向けることができるかもしれない。 –