how enable active java jboss cdi weld wildfly

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"/>