我遇到了使用Spring攔截器的問題。我有一個CXF服務端點方法,我正在嘗試使用攔截器來進行一些初始化。出於某種原因,攔截器沒有被調用。這裏是我的春天項:彈簧方法攔截器問題
<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>
正如你所看到的,我有一個CXF端點類AcadConnectChannelResource其中有幾個方法搜索和searchJSONp。我創建了Named Method Cut攔截器來攔截這兩個方法調用,因此使用自定義攔截器類進行一些初始化。但是,每次調用方法時,都不會調用攔截器。
不知道我在這裏失蹤,任何指針將不勝感激。
-Thanks
嗯......一切都很好看。您是否嘗試將*放在mappedNames元素的值中。如果*不適用於此impl ...也許嘗試RegexpMethodPointcutAdvisor。這一個需要*肯定,因爲我所有的Spring切入點都使用這個...讓我知道。如果尚未完成,請在攔截器中添加一些跟蹤信息,以查看它是否在*的某處。 – Cygnusx1
@ Cygnusx1使用*無效 – Shamik