IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Spring Web Java Discussion :

Le backing bean de JSF n'est pas injecté par Spring.


Sujet :

Spring Web Java

  1. #1
    Membre habitué Avatar de ziad.shady
    Homme Profil pro
    Inscrit en
    Mai 2008
    Messages
    212
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Mai 2008
    Messages : 212
    Points : 139
    Points
    139
    Par défaut Le backing bean de JSF n'est pas injecté par Spring.
    Bonjour à tous et à toutes.

    J'ai suivi ce tutoriel que je qualifie personnellement de bon, malgré les quelques erreurs et exception inattendues.

    Le problème sur lequel je galère, c'est que le Backing Bean qui gère le XHTLM n'est pas reconnu.

    Au démarrage de tomcat 7 et déploiement de l'application, voici les logs affichés sur la console :
    Apr 15, 2014 9:30:51 PM org.apache.catalina.core.AprLifecycleListener init
    INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: D:\professionnel\developpement\environnement\java\jdk1.7.0_17\jre\bin;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;D:\professionnel\developpement\environnement\java\jdk1.7.0_17\jre\bin;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files (x86)\Intel\iCLS Client\;C:\Program Files\Intel\iCLS Client\;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\Intel\OpenCL SDK\2.0\bin\x86;C:\Program Files (x86)\Intel\OpenCL SDK\2.0\bin\x64;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files\TortoiseSVN\bin;C:\Program Files (x86)\QuickTime\QTSystem\;D:\professionnel\developpement\environnement\java\jdk1.7.0_17\bin;D:\professionnel\developpement\environnement\apache-maven\3.0.5\bin;;.
    Apr 15, 2014 9:30:51 PM org.apache.tomcat.util.digester.SetPropertiesRule begin
    WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.j2ee.server:jsf-spring-hibernate' did not find a matching property.
    Apr 15, 2014 9:30:51 PM org.apache.coyote.AbstractProtocol init
    INFO: Initializing ProtocolHandler ["http-bio-8080"]
    Apr 15, 2014 9:30:51 PM org.apache.coyote.AbstractProtocol init
    INFO: Initializing ProtocolHandler ["ajp-bio-8009"]
    Apr 15, 2014 9:30:51 PM org.apache.catalina.startup.Catalina load
    INFO: Initialization processed in 1076 ms
    Apr 15, 2014 9:30:51 PM org.apache.catalina.core.StandardService startInternal
    INFO: Démarrage du service Catalina
    Apr 15, 2014 9:30:51 PM org.apache.catalina.core.StandardEngine startInternal
    INFO: Starting Servlet Engine: Apache Tomcat/7.0.52
    Apr 15, 2014 9:30:52 PM org.apache.catalina.loader.WebappClassLoader validateJarFile
    INFO: validateJarFile(D:\professionnel\developpement\environnement\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\jsf-spring-hibernate\WEB-INF\lib\javax.servlet-api-3.0.1.jar) - jar not loaded. See Servlet Spec 3.0, section 10.7.2. Offending class: javax/servlet/Servlet.class
    Apr 15, 2014 9:30:56 PM org.apache.catalina.core.ApplicationContext log
    INFO: No Spring WebApplicationInitializer types detected on classpath
    Apr 15, 2014 9:30:56 PM org.apache.catalina.core.ApplicationContext log
    INFO: Initializing Spring root WebApplicationContext
    Apr 15, 2014 9:30:56 PM org.springframework.web.context.ContextLoader initWebApplicationContext
    INFO: Root WebApplicationContext: initialization started
    Apr 15, 2014 9:30:56 PM org.springframework.context.support.AbstractApplicationContext prepareRefresh
    INFO: Refreshing Root WebApplicationContext: startup date [Tue Apr 15 21:30:56 CEST 2014]; root of context hierarchy
    Apr 15, 2014 9:30:56 PM org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
    INFO: Loading XML bean definitions from ServletContext resource [/WEB-INF/applicationContext.xml]
    Apr 15, 2014 9:30:56 PM org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
    INFO: Loading XML bean definitions from ServletContext resource [/WEB-INF/hibernate/dataSource.xml]
    Apr 15, 2014 9:30:56 PM org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
    INFO: Loading XML bean definitions from ServletContext resource [/WEB-INF/hibernate/hibernateSessionFactory.xml]
    Apr 15, 2014 9:30:56 PM org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
    INFO: Loading XML bean definitions from ServletContext resource [/WEB-INF/spring/beans/customerBean.xml]
    Apr 15, 2014 9:30:57 PM org.springframework.core.io.support.PropertiesLoaderSupport loadProperties
    INFO: Loading properties file from ServletContext resource [/WEB-INF/hibernate/db.properties]
    Apr 15, 2014 9:30:57 PM org.springframework.beans.factory.support.DefaultListableBeanFactory preInstantiateSingletons
    INFO: Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@3ff800b7: defining beans [org.springframework.beans.factory.config.PropertyPlaceholderConfigurer#0,dataSource,sessionFactory,customerService,customerDao]; root of factory hierarchy
    Apr 15, 2014 9:30:57 PM org.springframework.jdbc.datasource.DriverManagerDataSource setDriverClassName
    INFO: Loaded JDBC driver: org.postgresql.Driver
    Apr 15, 2014 9:30:57 PM org.hibernate.cfg.Environment <clinit>
    INFO: Hibernate 3.2.6
    Apr 15, 2014 9:30:57 PM org.hibernate.cfg.Environment <clinit>
    INFO: hibernate.properties not found
    Apr 15, 2014 9:30:57 PM org.hibernate.cfg.Environment buildBytecodeProvider
    INFO: Bytecode provider name : cglib
    Apr 15, 2014 9:30:57 PM org.hibernate.cfg.Environment <clinit>
    INFO: using JDK 1.4 java.sql.Timestamp handling
    Apr 15, 2014 9:30:57 PM org.hibernate.cfg.HbmBinder bindRootPersistentClassCommonValues
    INFO: Mapping class: model.Customer -> customer
    Apr 15, 2014 9:30:57 PM org.springframework.orm.hibernate3.LocalSessionFactoryBean buildSessionFactory
    INFO: Building new Hibernate SessionFactory
    Apr 15, 2014 9:30:57 PM org.hibernate.connection.ConnectionProviderFactory newConnectionProvider
    INFO: Initializing connection provider: org.springframework.orm.hibernate3.LocalDataSourceConnectionProvider
    Apr 15, 2014 9:30:58 PM org.hibernate.cfg.SettingsFactory buildSettings
    INFO: RDBMS: PostgreSQL, version: 9.3.4
    Apr 15, 2014 9:30:58 PM org.hibernate.cfg.SettingsFactory buildSettings
    INFO: JDBC driver: PostgreSQL Native Driver, version: PostgreSQL 9.3 JDBC4.1 (build 1101)
    Apr 15, 2014 9:30:58 PM org.hibernate.dialect.Dialect <init>
    INFO: Using dialect: org.hibernate.dialect.PostgreSQLDialect
    Apr 15, 2014 9:30:58 PM org.hibernate.transaction.TransactionFactoryFactory buildTransactionFactory
    INFO: Transaction strategy: org.springframework.orm.hibernate3.SpringTransactionFactory
    Apr 15, 2014 9:30:58 PM org.hibernate.transaction.TransactionManagerLookupFactory getTransactionManagerLookup
    INFO: No TransactionManagerLookup configured (in JTA environment, use of read-write or transactional second-level cache is not recommended)
    Apr 15, 2014 9:30:58 PM org.hibernate.cfg.SettingsFactory buildSettings
    INFO: Automatic flush during beforeCompletion(): disabled
    Apr 15, 2014 9:30:58 PM org.hibernate.cfg.SettingsFactory buildSettings
    INFO: Automatic session close at end of transaction: disabled
    Apr 15, 2014 9:30:58 PM org.hibernate.cfg.SettingsFactory buildSettings
    INFO: JDBC batch size: 15
    Apr 15, 2014 9:30:58 PM org.hibernate.cfg.SettingsFactory buildSettings
    INFO: JDBC batch updates for versioned data: disabled
    Apr 15, 2014 9:30:58 PM org.hibernate.cfg.SettingsFactory buildSettings
    INFO: Scrollable result sets: enabled
    Apr 15, 2014 9:30:58 PM org.hibernate.cfg.SettingsFactory buildSettings
    INFO: JDBC3 getGeneratedKeys(): enabled
    Apr 15, 2014 9:30:58 PM org.hibernate.cfg.SettingsFactory buildSettings
    INFO: Connection release mode: auto
    Apr 15, 2014 9:30:58 PM org.hibernate.cfg.SettingsFactory buildSettings
    INFO: Default batch fetch size: 1
    Apr 15, 2014 9:30:58 PM org.hibernate.cfg.SettingsFactory buildSettings
    INFO: Generate SQL with comments: disabled
    Apr 15, 2014 9:30:58 PM org.hibernate.cfg.SettingsFactory buildSettings
    INFO: Order SQL updates by primary key: disabled
    Apr 15, 2014 9:30:58 PM org.hibernate.cfg.SettingsFactory buildSettings
    INFO: Order SQL inserts for batching: disabled
    Apr 15, 2014 9:30:58 PM org.hibernate.cfg.SettingsFactory createQueryTranslatorFactory
    INFO: Query translator: org.hibernate.hql.ast.ASTQueryTranslatorFactory
    Apr 15, 2014 9:30:58 PM org.hibernate.hql.ast.ASTQueryTranslatorFactory <init>
    INFO: Using ASTQueryTranslatorFactory
    Apr 15, 2014 9:30:58 PM org.hibernate.cfg.SettingsFactory buildSettings
    INFO: Query language substitutions: {}
    Apr 15, 2014 9:30:58 PM org.hibernate.cfg.SettingsFactory buildSettings
    INFO: JPA-QL strict compliance: disabled
    Apr 15, 2014 9:30:58 PM org.hibernate.cfg.SettingsFactory buildSettings
    INFO: Second-level cache: enabled
    Apr 15, 2014 9:30:58 PM org.hibernate.cfg.SettingsFactory buildSettings
    INFO: Query cache: disabled
    Apr 15, 2014 9:30:58 PM org.hibernate.cfg.SettingsFactory createCacheProvider
    INFO: Cache provider: org.hibernate.cache.NoCacheProvider
    Apr 15, 2014 9:30:58 PM org.hibernate.cfg.SettingsFactory buildSettings
    INFO: Optimize cache for minimal puts: disabled
    Apr 15, 2014 9:30:58 PM org.hibernate.cfg.SettingsFactory buildSettings
    INFO: Structured second-level cache entries: disabled
    Apr 15, 2014 9:30:58 PM org.hibernate.cfg.SettingsFactory buildSettings
    INFO: Echoing all SQL to stdout
    Apr 15, 2014 9:30:58 PM org.hibernate.cfg.SettingsFactory buildSettings
    INFO: Statistics: disabled
    Apr 15, 2014 9:30:58 PM org.hibernate.cfg.SettingsFactory buildSettings
    INFO: Deleted entity synthetic identifier rollback: disabled
    Apr 15, 2014 9:30:58 PM org.hibernate.cfg.SettingsFactory buildSettings
    INFO: Default entity-mode: pojo
    Apr 15, 2014 9:30:58 PM org.hibernate.cfg.SettingsFactory buildSettings
    INFO: Named query checking : enabled
    Apr 15, 2014 9:30:58 PM org.hibernate.impl.SessionFactoryImpl <init>
    INFO: building session factory
    Apr 15, 2014 9:30:58 PM org.hibernate.impl.SessionFactoryObjectFactory addInstance
    INFO: Not binding factory to JNDI, no JNDI name configured
    Apr 15, 2014 9:30:58 PM org.springframework.web.context.ContextLoader initWebApplicationContext
    INFO: Root WebApplicationContext: initialization completed in 2275 ms
    Apr 15, 2014 9:30:58 PM com.sun.faces.config.ConfigureListener contextInitialized
    INFO: Initialisation de Mojarra 2.1.13 ( 20120907-1514) pour le contexte «/jsf-spring-hibernate»
    Apr 15, 2014 9:30:59 PM com.sun.faces.spi.InjectionProviderFactory createInstance
    INFO: JSF1048 : Présence d’annotations PostConstruct/PreDestroy Les méthodes de beans gérés marquées avec ces annotations auront des annotations dites traitées.
    Apr 15, 2014 9:31:00 PM org.apache.coyote.AbstractProtocol start
    INFO: Starting ProtocolHandler ["http-bio-8080"]
    Apr 15, 2014 9:31:00 PM org.apache.coyote.AbstractProtocol start
    INFO: Starting ProtocolHandler ["ajp-bio-8009"]
    Apr 15, 2014 9:31:00 PM org.apache.catalina.startup.Catalina start
    INFO: Server startup in 8494 ms
    A l'exécution j'arrive à l'affichage illustré par la pièce jointe affichage.png
    La première chose qui m'a interpellée c'est que la liste de résultat n'est pas affichée dans les colonnes "Customer ID", "Name", "Address" et "Created Date".
    La deuxième c'est que j'ai bien mis un point d'arrêt dans la méthode "getCustomerList()" du backing bean mais le débogueur ne s'y arrête pas.
    Voici le code XHTML :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     		<h:dataTable value="#{customer.getCustomerList()}" var="c">
        		<h:column>
        			<f:facet name="header">Customer ID</f:facet>
        			#{c.customerId}
        		</h:column>
        		<h:column>
        			<f:facet name="header">Name</f:facet>
       				#{c.name}
        		</h:column>
     			<h:column>
        			<f:facet name="header">Address</f:facet>
       				#{c.address}
        		</h:column>
        		<h:column>
        			<f:facet name="header">Created Date</f:facet>
       				#{c.createdDate}
        		</h:column>
        	</h:dataTable>
    Voici l'implémentation de la méthode getCustomerList() du backing bean :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    public List<Customer> getCustomerList() {
    		return customerService.findAllCustomer();
    	}
    Le clique sur le bouton "submit" relève l'exception suivante :
    Apr 16, 2014 10:18:38 AM com.sun.faces.lifecycle.ProcessValidationsPhase execute
    WARNING: /default.xhtml @37,93 value="#{customer.name}": Target Unreachable, identifier 'customer' resolved to null
    javax.el.PropertyNotFoundException: /default.xhtml @37,93 value="#{customer.name}": Target Unreachable, identifier 'customer' resolved to null
    at com.sun.faces.facelets.el.TagValueExpression.getType(TagValueExpression.java:100)
    at com.sun.faces.renderkit.html_basic.HtmlBasicInputRenderer.getConvertedValue(HtmlBasicInputRenderer.java:95)
    at javax.faces.component.UIInput.getConvertedValue(UIInput.java:1030)
    at javax.faces.component.UIInput.validate(UIInput.java:960)
    at javax.faces.component.UIInput.executeValidate(UIInput.java:1233)
    at javax.faces.component.UIInput.processValidators(UIInput.java:698)
    at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1214)
    at javax.faces.component.UIForm.processValidators(UIForm.java:253)
    at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1214)
    at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1214)
    at javax.faces.component.UIViewRoot.processValidators(UIViewRoot.java:1172)
    at com.sun.faces.lifecycle.ProcessValidationsPhase.execute(ProcessValidationsPhase.java:76)
    at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
    at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:593)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1040)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:313)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:722)
    Je comprends que le backing bean "customer" est null.

    Voici la description du faces-config.xml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    <?xml version="1.0" encoding="UTF-8"?>
    <faces-config   xmlns="http://java.sun.com/xml/ns/javaee"
        			xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        			xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd"
        			version="2.0">
     
    	<application>
        	<el-resolver>org.springframework.web.jsf.el.SpringBeanFacesELResolver</el-resolver>
      	</application>
     
    	<managed-bean>
    		<managed-bean-name>customer</managed-bean-name>
    		<managed-bean-class>ihm.CustomerBean</managed-bean-class>
    		<managed-bean-scope>session</managed-bean-scope>
    		<managed-property>
    			<property-name>customerService</property-name>
    			<value>#{customerService}</value>
    		</managed-property>
    	</managed-bean>
     
    </faces-config>
    La pièce jointe arbo-projet présente l'arborescence du projet.

    Je vous remercie d'avance de votre aide.
    Images attachées Images attachées   

Discussions similaires

  1. [Mail] Part mais n'est pas reçu par toutes les boites !
    Par GryzzlyJr dans le forum Langage
    Réponses: 3
    Dernier message: 08/06/2007, 00h59
  2. le caractère '_' n'est pas reconnu par le langage SQL
    Par zainab2000 dans le forum Langage SQL
    Réponses: 1
    Dernier message: 27/03/2007, 21h42
  3. [MySQL] MySQL n'est pas chargé par php
    Par elvan49 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 23/11/2006, 17h14
  4. Réponses: 1
    Dernier message: 17/10/2006, 16h05
  5. innerText n'est pas reconnue par FireFox !
    Par faico dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 26/08/2006, 22h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo