Rin*_*iev 10 java jboss cdi weld wildfly
如何在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.inject.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)
我试过了
<?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>
Run Code Online (Sandbox Code Playgroud)
但它没有解决我的问题.
Yur*_*uri 15
有标准方式:
<?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>
Run Code Online (Sandbox Code Playgroud)
sea*_*anf 15
这是特定于Weld的,但它禁用了Weld对整个部署的自动bean扫描(例如war文件及其中的所有jar).当您无法轻松添加beans.xml到第三方jar(例如jboss-seam-resteasy.jar)时,这很方便.
除了WEB-INF/jboss-all.xml战争,META-INF/jboss-all.xml否则:
<jboss xmlns="urn:jboss:1.0">
<weld xmlns="urn:jboss:weld:1.0" require-bean-descriptor="true"/>
</jboss>
Run Code Online (Sandbox Code Playgroud)
请参阅按部署配置.
另一个不需要更改应用程序本身的选项是将焊接子系统配置为不将随机罐作为CDI库处理.只需在WildFly中编辑焊接配置,standalone.xml如下所示:
<subsystem xmlns="urn:jboss:domain:weld:2.0" require-bean-descriptor="true"/>
Run Code Online (Sandbox Code Playgroud)
尝试org.jboss.as.weld在开头的扩展名列表中删除或注释掉该扩展名$JBOSS_HOME/standalone/configuration/standalone.xml。您可能还需要删除<subsystem xmlns="urn:jboss:domain:weld:1.0"/>的<profile>。这应该导致为服务器上部署的所有应用程序禁用Weld。
| 归档时间: |
|
| 查看次数: |
12981 次 |
| 最近记录: |