Я управляю простым веб-проектом Maven Java EE на Payara
Я пытаюсь продемонстрировать работу Interceptor, но он не вызывается. Я даже определил это в бобах. xml файл
- Версия Payara: 5.184
- Редакция: Полная
- Версия JDK: 1.8, Java EE 7
- Операционная система: Ma c
- База данных: Oracle
Класс EJB
package com.maven.web;
import com.interceptors.LogNameInterceptor;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.ejb.Stateless;
import javax.faces.bean.ManagedBean;
import javax.interceptor.Interceptors;
@ManagedBean
@Stateless
public class UserBean implements User {
private String firstName;
private String lastName;
public static final Logger LOGGER = Logger.getLogger(UserBean.class.getName());
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
@Override
@Interceptors(LogNameInterceptor.class)
public String show(String fn, String ln) {
LOGGER.log(Level.INFO, "Inside method");
return "result";
}
}
Пользователь. java
package com.maven.web;
import javax.ejb.Remote;
@Remote
public interface User {
public String show(String a, String b);
}
Класс перехватчика
package com.interceptors;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.interceptor.AroundInvoke;
import javax.interceptor.Interceptor;
import javax.interceptor.InvocationContext;
@Interceptor
public class LogNameInterceptor {
public static final Logger LOGGER = Logger.getLogger(LogNameInterceptor.class.getName());
@AroundInvoke
public Object aroundInvoke(InvocationContext ctx) throws Exception {
LOGGER.log(Level.INFO, "Inside Interceptor");
System.out.println(ctx.getMethod());
return ctx.proceed();
}
}
бобы. xml
<?xml version="1.0" encoding="UTF-8"?>
<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://java.sun.com/xml/ns/javaee/beans_1_0.xsd">
<interceptors>
<class>com.interceptors.LogNameInterceptor</class>
</interceptors>
</beans>
В журнале печатается только «метод Inside», что означает, что он не достигает метода aroundInvoke. Большое спасибо!