Я испытываю проблемы с перехватчиками 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" />
Я надеюсь, что я предоставил все, что имеет значение.
Заранее благодарим за помощь, это очень важная часть приложения.
Есть ли способ, которым я могу обнаружить эту проблему сразу после развертывания приложения и без запуска приложения? – dmota
К сожалению, я не знаю этого. – LightGuard