Olá Pessoal, tudo bom?
Hoje iremos falar sobre o erro WELD-001205 ou quando a tag <interceptors> foi declarada multiplas vezes 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 essa tag deve ser declarada apenas uma vez pois senão ocorrerá uma exception. Vamos supor o código abaixo:
1 2 3 4 5 6 7 8 9 10 11 12 |
<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.dao.util.OperacaoTransacionalInterceptor</class> </interceptors> <interceptors> <class>br.com.mauda.seminario.cientificos.interceptor.CronometroInterceptor</class> </interceptors> </beans> |
Como a declaração da tag <interceptors> está duplicada, ocorrerá a exception com a seguinte stack trace:
Caused by: org.jboss.weld.exceptions.DefinitionException: WELD-001205: <interceptors> can only be specified once, but it is specified multiple times: file:/seminarioscientificos/cientificos/target/classes/META-INF/beans.xml@9
at org.jboss.weld.xml.BeansXmlHandler$1.handleMultiple(BeansXmlHandler.java:186)
at org.jboss.weld.xml.BeansXmlHandler.startElement(BeansXmlHandler.java:308)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.startElement(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl.parse(Unknown Source)
at org.jboss.weld.xml.BeansXmlParser.parse(BeansXmlParser.java:120)
at org.jboss.weld.bootstrap.WeldBootstrap.parse(WeldBootstrap.java:131)
at org.jboss.weld.environment.deployment.discovery.AbstractBeanArchiveScanner.parseBeansXml(AbstractBeanArchiveScanner.java:46)
at org.jboss.weld.environment.deployment.discovery.DefaultBeanArchiveScanner.scan(DefaultBeanArchiveScanner.java:77)
at org.jboss.weld.environment.deployment.discovery.AbstractDiscoveryStrategy.performDiscovery(AbstractDiscoveryStrategy.java:86)
at org.jboss.weld.environment.se.Weld.createDeployment(Weld.java:880)
at org.jboss.weld.environment.se.Weld.initialize(Weld.java:764)
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
Solução
A solução para esse problema é deixar apenas uma tag <interceptors> declarada, com as tags classes dentro dessa, conforme o código abaixo:
1 2 3 4 5 6 7 8 9 10 |
<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.dao.util.OperacaoTransacionalInterceptor</class> <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