java - enable - Cómo deshabilitar WELD en WildFly
wildfly jboss (3)
Existe la forma estándar:
<?xml version="1.0" encoding="UTF-8"?>
<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"
version="1.1" bean-discovery-mode="none">
</beans>
Cómo deshabilitar completamente WELD en WildFly. No lo necesito, porque uso otro marco DI.
Excepción 0: javax.enterprise.inject.UnsatisfiedResolutionException: no se puede resolver un bean para ''org.springframework.data.mongodb.core.MongoOperations'' con calificadores [@ javax.enterprise.inject.Any (), @ javax.enterprise.inject .Defecto()]. en org.springframework.data.mongodb.repository.cdi.MongoRepositoryExtension.createRepositoryBean (MongoRepositoryExtension.java:104) en org.springframework.data.mongodb.repository.cdi.MongoRepositoryExtension.afterBeanDiscovery (MongoRepositoryExtension.java:79) en sun.reflect .NativeMethodAccessorImpl.invoke0 (Método nativo) en sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43) en java.lang.reflect.Method.invoke (Método .java: 606) en org.jboss.weld.injection.MethodInjectionPoint.invokeOnInstanceWithSpecialValue (MethodInjectionPoint.java:93) en org.jboss.weld.event.ObserverMethodImpl.sendEvent (ObserverMethodImpl.java:266) en org.jboss.weld. event.ExtensionObserverMethodImpl.sendEvent (ExtensionObserverMethodImpl.java:125) en org.jboss.weld.event.ObserverMethodImpl.sendEvent (ObserverMethodImpl.java:253) en org.jboss.weld.event.ObserverMethodImpl.notify (ObserverMethodImpl.java:232) en org.jboss.weld.event.ObserverNotifier.notifyObserver (ObserverNotifier.java:169)
Lo intenté
<?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"
xmlns:weld="http://jboss.org/schema/weld/beans"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/beans_1_0.xsd
http://jboss.org/schema/weld/beans http://jboss.org/schema/weld/beans_1_1.xsd
http://jboss.org/schema/weld/beans ">
<weld:scan>
<weld:exclude name="com.google.**"/>
<weld:exclude name="org.springframework.data.mongodb.**"/>
</weld:scan>
Pero no resolvió mi problema.
Intente eliminar o comentar la extensión org.jboss.as.weld
en la lista de extensiones al comienzo de $JBOSS_HOME/standalone/configuration/standalone.xml
. También es posible que desee eliminar <subsystem xmlns="urn:jboss:domain:weld:1.0"/>
from <profile>
. Esto debería causar la desactivación de Weld para todas las aplicaciones implementadas en el servidor.
Opción 1: jboss-all.xml en la guerra
Esto es específico de Weld, pero desactiva el escaneo automático de beans de Weld para una implementación completa (por ejemplo, un archivo war y todos los frascos dentro de él). Esto es útil cuando no puede agregar beans.xml
fácilmente a un jar de terceros, como jboss-seam-resteasy.jar.
Guardar como WEB-INF/jboss-all.xml
para guerras, META-INF/jboss-all.xml
contrario:
<jboss xmlns="urn:jboss:1.0">
<weld xmlns="urn:jboss:weld:1.0" require-bean-descriptor="true"/>
</jboss>
Ver configuración por despliegue .
Opción 2: standalone.xml en WildFly
Otra opción, que no requiere cambiar la aplicación en sí, es configurar el subsistema de soldadura para no tratar las jarras aleatorias como bibliotecas CDI . Simplemente edite la configuración para soldar en el archivo standalone.xml
de WildFly para que se vea así:
<subsystem xmlns="urn:jboss:domain:weld:2.0" require-bean-descriptor="true"/>