2014-11-24 5 views
0

Я использую банки следующей весны в:JSF 2.0 Весны инъекция фасоли

spring-web-2.5.5.jar 
spring-context-2.5.5.jar 
spring-core-2.5.5.jar 
spring-orm-2.5.5.jar 
spring-support-2.0.8.jar 
spring-security-taglibs-2.0.3.jar 
spring-security-acl-2.0.3.jar 
spring-security-core-2.0.4.jar 
spring-aop-2.5.5.jar 
spring-jdbc-2.5.5.jar 
spring-tx-2.5.5.jar 

Выпуск после миграции из JSF 1.2 в JSF 2.0 бобы, определенном в гранях контексте не может быть введен в управляемом компонент с сессией объем. Например:

<managed-bean> 
    <managed-bean-name>bannersController</managed-bean-name> 
    <managed-bean-class>jaxp.com.controller.BannersController</managed-bean-class> 
     <managed-bean-scope>request</managed-bean-scope> 
     <managed-property> 
      <property-name>bannerDao</property-name> 
      <value>#{bannerDao}</value> 
     </managed-property> 
</managed-bean> 

и

<bean id="bannerDao" class="jaxp.com.db.dao.BannerDaoImpl" 
    scope="prototype"> 
    <property name="sessionFactory" ref="sitePartnerSessionFactory" /> 
    <property name="dataSource" ref="sitePartnerDataSource" /> 
</bean> 

Когда я заменяю объем боба на сессии, он будет работать нормально. Но теперь управляемое свойство просто равно null. Он работал до того, как мы перешли на JSF 2.0. Что случилось и как исправить?

UPD: Если установить управляемый компонент возможности для просмотра сферы он также отлично работает/

+0

Стоп смешивания различных версий пружинные ... Spring 2.5.5 и 2.0. 8 не смешиваются. Также не уверен, почему ваш dao является прототипом в области, должен быть singleton imho. Убедитесь, что вы настроили правильный распознаватель для JSF он будет работать только при правильной настройке интеграции ... –

+0

Смотрите мой полный ответ на этикетке Полный ответ: [Весна инъекции фасоли в JSF фасоли] [1] [1]: http://stackoverflow.com/questions/27094466/injection-service-spring-on-managedbean-failed-npe/27113201#27113201 –

ответ

1

JSF фасоли:

inject spring service 
@ManagedProperty("#{handlerService}") 
private HandlerService handlerService = null; 
///add setter 
Spring service: 

@Service("handlerService") 
@Component 
public class HandlerService { 
    @Autowired 
    private DomainService domainService; 

faces-config.xml 
    <application>  
     <el-resolver>org.springframework.web.jsf.el.SpringBeanFacesELResolver</el-resolver>     
    </application> 
------------ 
web.xml 

<context-param> 
     <param-name>contextClass</param-name> 
     <param-value> 
      org.springframework.web.context.support.AnnotationConfigWebApplicationContext 
     </param-value> 
    </context-param> 
    <context-param> 
     <param-name>contextConfigLocation</param-name> 
     <param-value>com.myspringconfgigclass.CommonCoreConfig</param-value> 
    </context-param> 
    <listener> 
     <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 
    </listener> 
Смежные вопросы