Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Logger: The method getLogger(String) is undefined for the type Logger

("The method getLogger(String) is undefined for the type Logger") Minha classe do LoggerInterceptor não reconhece o método getLogger:

package br.com.alura.interceptor;

import br.com.alura.interceptor.Logger;
import javax.ejb.EJBException;
import javax.interceptor.*;
import javax.validation.ConstraintViolationException;

@Interceptor
@Logger
public class LoggerInterceptor {

    @AroundInvoke
    public Object treatException(InvocationContext context) throws Exception{

        Logger logger = Logger.getLogger(context.getTarget().getClass().getName()); // DÁ ERRO NO MÉTODO getLogger

        try {
            return context.proceed();
        } catch (Exception e) {

            if (e.getCause() instanceof ConstraintViolationException) {
                logger.info(e.getMessage());
            } else {
                logger.severe(e.getMessage());
            }
            throw e;
        }
    }

}

Classe Logger:

package br.com.alura.interceptor;
import java.lang.annotation.*;
import javax.interceptor.InterceptorBinding;

@InterceptorBinding
@Target({ElementType.TYPE,ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Inherited
public @interface Logger {
}
3 respostas
solução!

aparentemente preciso anotar a classe LoggerInterceptor com:

@br.com.alura.interceptor.Logger
public class LoggerInterceptor {

Oi Evillyn

Exatamente, precisa do "@br.com.alura.interceptor.Logger". Feito isso o problema foi resolvido?

Sim...

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software