如何在WildFly上禁用WELD

如何在WildFly上完全禁用WELD。 我不需要它,因为我使用另一个DI框架。

例外0:javax.enterprise.inject.UnsatisfiedResolutionException:无法使用限定符[@ javax.enterprise.inject.Any(),@ javax.enterprise.inject解析’org.springframework.data.mongodb.core.MongoOperations’的bean 。默认()]。 at org.springframework.data.mongodb.repository.cdi.MongoRepositoryExtension.createRepositoryBean(MongoRepositoryExtension.java:104)at the sun.reflect org.springframework.data.mongodb.repository.cdi.MongoRepositoryExtension.afterBeanDiscovery(MongoRepositoryExtension.java:79)at sun.reflect at.MativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.lang.reflect.Method.invoke(Method .java:606)在org.jboss.weld上的org.jboss.weld.welject.MethodInjectionPoint.invokeOnInstanceWithSpecialValue(MethodInjectionPoint.java:93)org.jboss.weld.event.ObserverMethodImpl.sendEvent(ObserverMethodImpl.java:266)。 event.ExtensionObserverMethodImpl.sendEvent(ExtensionObserverMethodImpl.java:125)org.jboss.weld.event.ObserverMethodImpl.sendEvent(ObserverMethodImpl.java:253)org.jboss.weld.event.ObserverMethodImpl.notify(ObserverMethodImpl.java:232) 在org.jboss.weld.event.ObserverNotifier.notifyObserver(ObserverNotifier.java:169)

我试过了

      

但它没有解决我的问题。

尝试删除或注释掉$JBOSS_HOME/standalone/configuration/standalone.xml开头的扩展列表中的org.jboss.as.weld扩展名。 您可能还想从删除 。 这应该导致对服务器上部署的所有应用程序禁用Weld。

有标准方式:

    

选项1:战争中的jboss-all.xml

这是特定于Weld的,但它禁用了Weld对整个部署的自动bean扫描(例如war文件及其中的所有jar)。 当您无法轻松地将beans.xml添加到第三方jar(例如jboss-seam-resteasy.jar)时,这很方便。

保存为战争的WEB-INF/jboss-all.xmlWEB-INF/jboss-all.xmlMETA-INF/jboss-all.xml

    

请参阅按部署配置 。

选项2:WildFly中的standalone.xml

另一个不需要更改应用程序本身的选项是将焊接子系统配置为不将随机jar作为CDI库处理 。 只需在WildFly的standalone.xml编辑焊接配置,如下所示: