Использование перехватчика EJB по умолчанию для сопоставления параметров - PullRequest
0 голосов
/ 09 февраля 2011

Я хотел бы создать перехватчик 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 [] [] и все остальное, вместо тех,точно два.Кто-нибудь знает, можно ли это сделать?

Ответы [ 2 ]

0 голосов
/ 12 марта 2012

Это невозможно сделать стандартным образом.

Однако вы можете просто перехватить каждый вызов и проверить типы параметров самостоятельно.

0 голосов
/ 09 февраля 2011

В Glassfish v3 использование подстановочного значения '*' для имени метода, похоже, работает на уровне отдельного компонента:

<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>

Однако, насколько я понимаю, это поведение не вызывается в спецификации перехватчиков, поэтому на него, вероятно, не следует полагаться.

...