Olá Pessoal, tudo bom?
Hoje iremos falar sobre o erro WELD-000123 ou quando o weld não consegue achar a classe declarada no arquivo beans.xml. Veja na continuação
Descrição do Erro
Quando estamos declarando um interceptor, dentro do arquivo beans.xml devemos colocar com a tag <interceptors> a declaração desse interceptor. Só que se você não colocar o package e o nome da classe corretamente ocorrerá uma exception. Vamos supor o código abaixo:
1 2 3 4 5 6 7 8 9 |
<beans xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/beans_1_1.xsd" bean-discovery-mode="all"> <interceptors> <class>br.com.mauda.seminario.cientificos.interceptor.CronometroInterceptorERRADO</class> </interceptors> </beans> |
Como a declaração do interceptor está com o nome ERRADO, ocorrerá a exception com a seguinte stack trace:
Caused by: org.jboss.weld.exceptions.DeploymentException: WELD-000123: Error loading br.com.mauda.seminario.cientificos.interceptor.CronometroInterceptorERRADO defined in <class>br.com.mauda.seminario.cientificos.interceptor.CronometroInterceptorERRADO</class> in file:/seminarioscientificos/cientificos/target/classes/META-INF/beans.xml@8
at org.jboss.weld.bootstrap.enablement.GlobalEnablementBuilder$ClassLoader.apply(GlobalEnablementBuilder.java:279)
at org.jboss.weld.bootstrap.enablement.GlobalEnablementBuilder.createModuleEnablement(GlobalEnablementBuilder.java:198)
at org.jboss.weld.bootstrap.BeanDeployment.createEnablement(BeanDeployment.java:234)
at org.jboss.weld.bootstrap.WeldStartup.startInitialization(WeldStartup.java:415)
at org.jboss.weld.bootstrap.WeldBootstrap.startInitialization(WeldBootstrap.java:76)
at org.jboss.weld.environment.se.Weld.initialize(Weld.java:785)
at br.com.mauda.seminario.cientificos.util.WeldContext.<init>(WeldContext.java:11)
at br.com.mauda.seminario.cientificos.util.WeldContext.<clinit>(WeldContext.java:8)
… 47 more
Caused by: java.lang.ClassNotFoundException: br.com.mauda.seminario.cientificos.interceptor.CronometroInterceptorERRADO
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at org.jboss.weld.environment.deployment.WeldResourceLoader.classForName(WeldResourceLoader.java:40)
at org.jboss.weld.bootstrap.enablement.GlobalEnablementBuilder$ClassLoader.apply(GlobalEnablementBuilder.java:277)
… 54 more
Solução
A solução para esse problema é arrumar o nome do package ou classe que está errado, conforme o código abaixo:
1 2 3 4 5 6 7 8 9 |
<beans xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/beans_1_1.xsd" bean-discovery-mode="all"> <interceptors> <class>br.com.mauda.seminario.cientificos.interceptor.CronometroInterceptor</class> </interceptors> </beans> |
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!
Leave a Reply