2013-07-25 2 views
0

Я испытываю проблемы с перехватчиками CDI, и я не мог понять, что не так.Перехватчики CDI работают только при использовании Jrebel

Хотя я разрабатываю с использованием Eclipse, только с активным агентом JRebel, перехватчики работают хорошо, но когда я развертываю одно и то же приложение, при той же установке в стеклянную фишку, на этот раз файл EAR с использованием команды asadmin, перехватчики полностью игнорируются , То же самое происходит, когда я выключаю агента jrebel.

Я использую Glassfish 3.1.2.2 с Weld 1.1.11 и JDK 1.6.

Мое приложение является Maven проект мульти-модуль, как:

APP 
\--MODULE-EJB1 (annotation and interceptor resides here.) 
    \--META-INF\beans.xml (with interceptor declaration) 
\--MODULE-EJB2 
    \--META-INF\beans.xml (empty one) 
\--MODULE-JAR 
    \--META-INF\beans.xml (empty one) 
\--MODULE-WAR 
    \--WEB-INF\beans.xml (empty one) 
\--MODULE-EAR 

Мой аннотаций:

@InterceptorBinding 
@Target({ TYPE, METHOD }) 
@Retention(RUNTIME) 
public @interface Audited { 
} 

Мой перехватчик класса:

@Audited 
@Interceptor 
public class AuditInterceptor implements Serializable { 
    [...] 
} 

Мой перехвачены метод:

@Override 
@Audited 
public E save(E model) throws SGIException, ConstraintViolationException { 
    [...] 
} 

Мои beans.xml файлы:

<?xml version="1.0"?> 
<beans 
    xmlns="http://java.sun.com/xml/ns/javaee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://jboss.org/schema/cdi/beans_1_0.xsd" > 
    <interceptors> 
     <class>pkg.interceptor.AuditInterceptor</class> 
    </interceptors> 
</beans> 

<!-- empty one --> 
<?xml version="1.0"?> 
<beans 
    xmlns="http://java.sun.com/xml/ns/javaee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://jboss.org/schema/cdi/beans_1_0.xsd" /> 

Я надеюсь, что я предоставил все, что имеет значение.

Заранее благодарим за помощь, это очень важная часть приложения.

ответ

0

У стеклянной рыбы проблемы с перехватчиками были включены с первого дня. Я понятия не имею, исправили ли они это. В настоящее время единственный способ заставить его работать - продолжать разворачивать и передислоцировать до тех пор, пока они, наконец, не будут работать :(

+0

Есть ли способ, которым я могу обнаружить эту проблему сразу после развертывания приложения и без запуска приложения? – dmota

+0

К сожалению, я не знаю этого. – LightGuard

Смежные вопросы