我开始使用一些CDI(来自Spring背景。)我在线跟踪一些战争示例,他们通常使用焊接servlet的旧依赖项,例如1.1.10.Final。
当我使用此依赖项时,我的示例应用程序工作得很好[Tomcat 7]。但是,当我尝试升级到2.2.9.Final时,我最终得到启动错误:
引起:org.jboss.weld.exceptions.DeploymentException:WELD-001408:带有限定符@Default
的UserTransaction类型的不满意依赖项只有在升级时才会发生这种情况。
目前在这个简单的webapp中,我有一个位于WEB-INF下的beans.xml文件(尽管我也尝试在META-INF下添加一个额外的文件。)
任何想法我可能做错了。
看起来很奇怪,它在1.1下工作正常但不是2.2?
我的beans.xml我试过定义两种方式(不确定哪一种更好......我见过两种方式)
<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="annotated"
>
</beans>
<?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"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/beans_1_1.xsd">
</beans>