当注入的bean保持为空时该怎么办?

时间:2012-03-12 13:39:51

标签: java cdi jboss-weld

在我的应用程序中,我有一个使用对Utils类的引用的类。想要CDI友好,我写

public abstract class CommonClientBase<InterfaceType> {

    /**
     * Used utility class
     */
    private @Inject Utils utils;
}

其中Utils是一个简单的类,绝对没有构造函数,没有注入字段。

我必须补充一点,我的项目声明了一个META-INF / beans.xml文件,包含

<?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://docs.jboss.org/cdi/beans_1_0.xsd
          http://jboss.org/schema/weld/beans http://jboss.org/schema/weld/beans_1_1.xsd">
    <weld:scan>
        <weld:exclude name="org.granite.cdi.**"/>
    </weld:scan>
</beans>

那么,什么可以使我的utils引用在应用程序加载后保持null,更重要的是,我如何解决该无效问题?

顺便说一句,我必须说这段代码曾经与Weld 1.0.1-Final一起使用,但现在却因Weld 1.1.4.Final

而失败

编辑另请注意,抽象类也通过限定的子类实例使用:

@JndiClient
public class ClientEJBInterfaceJndiClient extends CommonClientBase<ClientEJBInterface> implements ClientEJBInterface {
}

这是从某些服务器端代码生成的。

0 个答案:

没有答案