【问题标题】:Failed to inject @Resource Annotation in managed bean无法在托管 bean 中注入 @Resource 注解
【发布时间】:2012-10-06 18:06:58
【问题描述】:

我试图使用 spring @Resource Annotation 将一个 util 类注入到托管 bean,但是当我运行应用程序时,我得到了这个错误。

    Caused by: com.sun.faces.spi.InjectionProviderException: javax.naming.NameNotFoundException: Name com.web.bean.Bond is not bound in this Context
    at com.sun.faces.vendor.Tomcat6InjectionProvider.inject(Tomcat6InjectionProvider.java:84)
    at com.sun.faces.mgbean.BeanBuilder.injectResources(BeanBuilder.java:205)
    ... 37 more
Caused by: javax.naming.NameNotFoundException: Name com.web.bean.Bond is not bound in this Context
    at org.apache.naming.NamingContext.lookup(NamingContext.java:770)
    at org.apache.naming.NamingContext.lookup(NamingContext.java:153)
    at org.apache.catalina.util.DefaultAnnotationProcessor.lookupFieldResource(DefaultAnnotationProcessor.java:278)
    at org.apache.catalina.util.DefaultAnnotationProcessor.processAnnotations(DefaultAnnotationProcessor.java:187)
    at com.sun.faces.vendor.Tomcat6InjectionProvider.inject(Tomcat6InjectionProvider.java:82)

我的弹簧配置

 <context:annotation-config/>
 <context:component-scan base-package="com.web.bean"/>

我使用注解的托管 bean

  package com.web.bean;
  @ManagedBean
  @SessionScoped

@Resource
private MailSender mail;

【问题讨论】:

  • 你确定吗?这不是ejb?

标签: spring managed-bean


【解决方案1】:

我已在不使用@Resource Annotation 的情况下解决了这个问题

private MailSender mail = (MailSender) SpringWrapper.getInstance().getBean("mail");

【讨论】:

    猜你喜欢
    • 2013-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-14
    • 2015-08-06
    • 1970-01-01
    • 2012-01-27
    • 2011-07-07
    相关资源
    最近更新 更多