首页 > 解决方案 > 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;

有人可以帮我吗?我将非常感激!

标签: primefacesautocompletecdiinject

解决方案


在这个答案中找到了正确的答案

我将“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>

推荐阅读