2012-10-06 57 views
0

即时尝试注入一个util类使用spring @Resource Annotation托管bean,但是当我运行应用程序时,我得到这个错误。无法注入托管bean中的@Resource注解

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) 

我的spring配置

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

托管bean在那里我使用注释

package com.web.bean; 
    @ManagedBean 
    @SessionScoped 

@Resource 
private MailSender mail; 
+0

确定?这不是ejb? – Elbek

回答

0

我已经修复了这个问题,而无需使用@Resource注释

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