• Skip to primary navigation
  • Skip to content

Mauda

IT, Java and Music

Graduação   SCJP   Mestrado
  • Apresentação
  • Certificação Java
  • JPA
    • Exceptions
  • JSF
  • Versionamento
  • Contato

CDI – Erro – WELD-001448 – Method intercept defined on class [NOME_CLASSE] is not defined according to the specification

December 24, 2018 by Mauda Leave a Comment

Conteúdo do Post:
  1. Descrição do Erro
  2. Solução
  3. finally{

Olá Pessoal, tudo bom?

Hoje iremos falar sobre o erro WELD-001448 ou Method intercept defined on class [NOME_CLASSE] is not defined according to the specification. Veja na continuação

Descrição do Erro

Quando estamos declarando um interceptor, existe um método que devemos implementar com algumas características particulares como a criação de apenas um parâmetro do tipo javax.interceptor.InvocationContext. Vamos supor o código abaixo:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
package br.com.mauda.seminario.cientificos.interceptor;
 
import javax.interceptor.AroundInvoke;
import javax.interceptor.Interceptor;
 
@Interceptor
@Cronometro
public class CronometroInterceptor {
 
    @AroundInvoke
    public Object intercept() throws Exception {
        return new Object(); //Apenas a titulo de exemplo retorna-se isso
    }
}

Como a declaração do método do interceptor está errada, sem o parâmetro correto, ocorrerá a exception com a seguinte stack trace:

Caused by: org.jboss.weld.exceptions.DefinitionException: WELD-001448: Method intercept defined on class br.com.mauda.seminario.cientificos.interceptor.CronometroInterceptor is not defined according to the specification. It is annotated with @javax.interceptor.AroundInvoke but it does not have exactly one parameter
at br.com.mauda.seminario.cientificos.interceptor.CronometroInterceptor.intercept(CronometroInterceptor.java:14)
StackTrace
at org.jboss.weld.interceptor.reader.InterceptorMetadataUtils.isValidBusinessMethodInterceptorMethod(InterceptorMetadataUtils.java:117)
at org.jboss.weld.interceptor.reader.InterceptorMetadataUtils.isInterceptorMethod(InterceptorMetadataUtils.java:37)
at org.jboss.weld.util.BeanMethods$3.processMethod(BeanMethods.java:338)
at org.jboss.weld.util.BeanMethods.getMethods(BeanMethods.java:125)
at org.jboss.weld.util.BeanMethods.getInterceptorMethods(BeanMethods.java:322)
at org.jboss.weld.interceptor.reader.InterceptorMetadataUtils.buildMethodMap(InterceptorMetadataUtils.java:130)
at org.jboss.weld.bean.InterceptorImpl.initInterceptorMetadata(InterceptorImpl.java:81)
at org.jboss.weld.bean.InterceptorImpl.<init>(InterceptorImpl.java:69)
at org.jboss.weld.bean.InterceptorImpl.of(InterceptorImpl.java:64)
at org.jboss.weld.bootstrap.AbstractBeanDeployer.createInterceptor(AbstractBeanDeployer.java:293)
at org.jboss.weld.bootstrap.BeanDeployer.createClassBean(BeanDeployer.java:223)
at org.jboss.weld.bootstrap.ConcurrentBeanDeployer$2.doWork(ConcurrentBeanDeployer.java:74)
at org.jboss.weld.bootstrap.ConcurrentBeanDeployer$2.doWork(ConcurrentBeanDeployer.java:71)
at org.jboss.weld.executor.IterativeWorkerTaskFactory$1.call(IterativeWorkerTaskFactory.java:62)
at org.jboss.weld.executor.IterativeWorkerTaskFactory$1.call(IterativeWorkerTaskFactory.java:55)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)

Solução

A solução para esse problema é inserir o parâmetro corretamente e o import correspondente, conforme as linhas marcadas no código abaixo:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
package br.com.mauda.seminario.cientificos.interceptor;
 
import javax.interceptor.AroundInvoke;
import javax.interceptor.Interceptor;
import javax.interceptor.InvocationContext;
 
@Interceptor
@Cronometro
public class CronometroInterceptor {
 
    @AroundInvoke
    public Object intercept(InvocationContext ctx) throws Exception {
        return ctx.proceed();
    }
}

 

finally{

Caso você achou mais alguma solução para essa exception, por favor deixe nos comentários abaixo!

Duvidas ou sugestões? Deixe seu feedback! Isso ajuda a saber a sua opinião sobre os artigos e melhorá-los para o futuro! Isso é muito importante!

Até um próximo post!

Filed Under: CDI, Java Tagged With: cdi, interceptor, WELD-001448

About Mauda

Mestre em Informática, Analista de Sistemas, Professor, SCJP e Baterista. Desde 2002 trabalhando no mundo Java e ensinando pessoas sobre desenvolvimento de sistemas. Mais informações

Reader Interactions

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Advertisements

Copyright © 2025 · Genesis Framework · WordPress · Log in