当前位置: 首页 > 知识库问答 >
问题:

JSF2.3 CDI不适用于tomcat

濮金鑫
2023-03-14

我试图在tomcat 8上设置jsf 2.3,每当我使用“注入”时,我总是有一个错误,我已经在谷歌上搜索了stackoverflow.com但我找不到解决方案。我已经在上面安装了CDI(焊接),下面是@BalusC示例。如何在Tomcat上安装和使用CDI?然而,我一直有不满意的依赖:没有bean匹配注入点。我想不出来我是不是错过了什么?

配置bean。JAVA

import static javax.faces.annotation.FacesConfig.Version.JSF_2_3;
import javax.faces.annotation.FacesConfig;
@FacesConfig(
     // Activates CDI build-in beans
     version = JSF_2_3
)
public class ConfigurationBean {
}

豆。xml

<?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>

faces-config.xml

<?xml version='1.0' encoding='UTF-8'?>
<faces-config version="2.3"
  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/web-facesconfig_2_3.xsd">
</faces-config>

菜豆。JAVA

@Named
@ViewScoped
public class PushBean implements Serializable {
  @Inject @Push(channel="counter") //This is where i get the error message unsatisfied dependency: no bean matches the injection point
  private PushContext push;
}

共有2个答案

卢磊
2023-03-14

我建议检查一下你的瞄准镜。内置的CDI作用域是@Application ationScoped、@SessionScoped、@ConversationScoped和@ResestScoped。CDI中没有@ViewScoped注释。您可以注入相同的级别或更宽的范围,但不能注入较小的范围(例如,您不能在@SessionScoped bean中注入@ResestScoped)

孔扬
2023-03-14

Spring不是一个成熟的CDI容器,只“知道”命名的@Inject注释,因此(很可能)不会将@Push注释识别为限定符,并且找不到bean并抛出您得到的错误(发布一个明确的错误和stacktrace是你在提问时应该经常做的事情!)

另见:

  • 注入实例

 类似资料:
  • 问题内容: 嗨,我只是简单地尝试在www.example.com上获取h1标签,该标签显示为“ Example Domain”。该代码适用于http://www.example.com,但不适用于https://www.exmaple.com。我该如何解决这个问题?谢谢 问题答案: PhantomJSDriver不支持(所有)DesiredCapabilities。 你会需要: 记录在这里:htt

  • 所以我使用这种方法写入文件,它在windows上运行完全正常,但在mac上运行时,它会创建文件,但它们是空的。 我知道数据是正确的,因为它打印正确。感谢您的任何帮助,这真的让我绊倒了。

  • 列名称的类型为int[] 上述查询适用于postgresql,但不适用于hsqldb,甚至适用于sql 尝试的hsqldb版本:2.2.9和2.3.0 在hsqldb中工作的sql是从table_name中选择x,unnest(column_name)y(x)x和y不是该表的列。

  • 我正在尝试为tomcat 8配置SSL(https),并完成了以下步骤,但仍然不起作用 1)创建密钥库文件,使用 2)生成如下CSR 在tomcat中启用ssl调试后添加日志

  • 我能够成功地打电话给邮递员: /mfp/api/az/v1/token和 /mfpadmin/management-apis/2.0/runtimes/mfp/applications 我正在获取从/mfp/api/az/v1/token接收的承载令牌,并将其添加到/mfp/applications的授权标头中。 我收到了来自两者的200个响应,并从每个API中获取了预期的信息。 然后,我选择从P

  • 我一直在使用声纳3.2 同样的配置,当我升级到SonarQube 4.4时 声纳项目属性: 请帮助整理这些例外 问候, KP