В моем приложении у меня есть класс, который использует ссылку на класс 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
после загрузки приложения и, что более важно, как я могу решить эту пустоту?
Кроме того, я должен сказать, что этот код раньше работал со сваркой 1.0.1-Final
, но теперь не работает со сваркой 1.1.4.Final
РЕДАКТИРОВАТЬ Также обратите внимание, что абстрактный класс также используется через квалифицированные экземпляры подклассов:
@JndiClient
public class ClientEJBInterfaceJndiClient extends CommonClientBase<ClientEJBInterface> implements ClientEJBInterface {
}
которые генерируются из некоторого серверного кода.