primefaces - Primefaces 展示自动完成 countryService @inject 问题(Primefaces 8.0、JSF 2.3、TomEE-wepprofile)
问题描述
试图让“Primefaces Showcase 自动完成”运行我遇到了“CountryService.java”无法加载的问题。我从(https://www.primefaces.org/showcase/ui/input/autoComplete.xhtml?jfwid=52f7c)复制了它。看起来它是由“ @Inject private CountryService countryService ;”引起的 不工作。
在 autoCompleteView.java 中,我在方法completeText中添加了一个打印行:
public List completeText (String query) { System.out.println(thisClassName + ": completeText (1) - " + query + " / " + countryService );}
运行时显示:“AutoCompleteView: completeText (1) - ned / null”,意思是“ countryService ”尚未初始化。会不会是CDI 问题?我正在使用根据文档应该支持 CDI 的“tomee-8.0.6-webprofile”!或者我必须将 CDI2.0 单独安装到我的 java 库列表中吗?
我尝试了@BalusC 解决方案:如何使用 JSF 2.3 和 TomEE 注入 FacesContext?
也许我的安装中缺少某些东西?:
日食 18-12;
Apache Tomcat (TomEE)/9.0.41 (8.0.6);
JSF2.3;
我的脸2.3;
Primefaces 8.0;
有人可以帮我吗?我将非常感激!
解决方案
在这个答案中找到了正确的答案
我将“beans.xml”添加到我的 WEB-INF 目录中:
<?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="all">
</beans>