2011-02-09 33 views
0

我想創建一個EJB默認攔截器,該攔截器可以作用於包含一組參數的任何業務方法,但不需要完全匹配。還有通過參數設置匹配的經典方法,即:使用EJB默認攔截器在參數上匹配

<assembly-descriptor>. 
<!-- Method interceptor will apply to sendBookingCancellationMessage for EmailSystemBean --> 
    <interceptor-binding> 
     <ejb-name>MyBean</ejb-name> 
     <interceptor-class>SomeInterceptor</interceptor-class> 
     <method> 
      <method-name>overLoadedMethod</method-name> 
      <method-params> 
       <method-param>int</method-param> 
       <method-param>java.lang.String[][]</method-param> 
      </method-params> 
     </method> 
    </interceptor-binding> 
</assembly-descriptor> 

但是我反而想匹配,而不是那些確切兩個在接受一個int和一個String [] []和任何其他的任何方法, 。有誰知道這是否可以完成?

回答

0

在GlassFish v3的,使用方法名通配符值「*」似乎在個人Bean級別的工作:

<interceptor-binding> 
    <ejb-name>MyBean</ejb-name> 
    <interceptor-class>SomeInterceptor</interceptor-class> 
    <method> 
     <method-name>*</method-name> 
     <method-params> 
     <method-param>int</method-param> 
     <method-param>java.lang.String[][]</method-param> 
     </method-params> 
    </method> 
</interceptor-binding> 

然而,這種行爲不是在攔截器規格叫出來爲止正如我所看到的,所以它可能不應該依賴。

+0

這個想法很好,但不是我想要的。我不是想要匹配任何方法,而是任何需要但不限於int和String [] []的方法。 – mikek 2011-02-10 07:56:33

0

它不能以標準定義的方式完成。

但是,您可以簡單地截取每個調用並自己檢查參數類型。