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 :

Problème "neither binding result nor plain target object for bean name"


Sujet :

Spring Web Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 28
    Par défaut Problème "neither binding result nor plain target object for bean name"
    Bonjour,

    Je réalise une application web ou j'utilise éclipse indigo, tomcat 7.0, Hibernate 4.1.1 et Spring 3.1.1.

    Lorsque je vais sur ma page login, la console m'affiche le message d'erreur suivant :

    org.apache.jasper.JasperException: java.lang.IllegalStateException: Neither BindingResult nor plain target object for bean name 'loginform' available as request attribute

    Voici le code de mon fichier login.jsp

    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
        pageEncoding="ISO-8859-1"%>
    <%@ taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
    <!-- tests -->
    <% //session.removeAttribute("nom");
    int nb_p = 7;
    String[] st = new String[50];
    for(int i=1; i <= nb_p; i++) st[i-1]="Playlist "+i;
    session.setAttribute("playlists", st);%>
     
    <!-- header -->
    <jsp:include page="HeaderFooter/header.jsp"/>
     
    <!-- side menu -->
    <jsp:include page="Content/side_menu.jsp"/>
     
    <!-- content -->
    <div class="span9">
    	<form:form modelAttribute="loginform" action="/VinylRecordManager/login" method="POST">
    		<div class="well">
    			<h1>Connexion</h1>
    			<p>Utilisez votre nom d'utilisateur et votre mot de passe pour accéder à votre compte.</p>
    		</div>
    		<div class="span7 well">
    			<form:label path="userName">Nom d'utilisateur</form:label> <form:input path="userName"/>
    			<form:label path="password">Mot de passe</form:label> <form:input path="password"/>
    		</div>
    		<div class="span7 well">
    			<div class="btn-toolbar pull-right">
    				<div class="btn-group">
    					<a class="btn" href="register.jsp">Je n'ai pas de compte utilisateur &raquo;</a>
    				</div>
    				<div class="btn-group">
    	  				<input type="submit" class="btn" value="Valider">
    	  				<a class="btn" href="index.jsp">Accueil</a>
    				</div>
    			</div>
    		</div>
    	</form:form>
    </div><!--/span-->
     
    <!-- footer -->
    <jsp:include page="HeaderFooter/footer.jsp"/>


    formulaire java

    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
    22
    package app.web;
     
    public class LoginForm {
     
     
        private String userName;
        private String password;
     
        public void setUserName(String userName) {
                this.userName = userName;
        }
        public String getUserName() {
                return userName;
        }
        public void setPassword(String password) {
                this.password = password;
        }
        public String getPassword() {
                return password;
        }
     
    }

    Controlleur

    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
     
    package app.web;
    import javax.servlet.http.HttpSession;
     
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Controller;
    import org.springframework.validation.BindingResult;
    import org.springframework.web.bind.annotation.ModelAttribute;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RequestMethod;
    import org.springframework.ui.Model;
    import app.service.UserService;
     
     
     
    @Controller("LoginController")
    @RequestMapping("/VinylRecordManager/login")
    public class LoginController {
     
    	@Autowired
    	private UserService user;
     
    	@RequestMapping(method = RequestMethod.GET)
    	public String getForm(Model model) {
     
    		model.addAttribute("loginform", new LoginForm());
    		return "login";
    	}
     
    	@RequestMapping(method = RequestMethod.POST)
    	public String Authentification(@ModelAttribute("loginform") LoginForm lform, HttpSession session, BindingResult result) {
     
    		if (user.login(lform.getUserName(), lform.getPassword())==true) 
    				System.out.println("authentifie");
    				else
    					System.out.println("error");
    		return "index";
    	}
    }
    Merci d'avance

  2. #2
    Membre éprouvé Avatar de chewing-gum
    Homme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2009
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Novembre 2009
    Messages : 105
    Par défaut
    Peux-tu poster la full stackTrace stp ?

    Normalement, le message doit te dire qu'un 'bean' n'existe pas. Il pourrait t'aider à trouver une solution (ou à ce que nous t'aidions pour trouver la solution).

    Sinon, je pense que le problème vient de là :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <form:form modelAttribute="loginform" action="/VinylRecordManager/login" method="POST">
    Essaye plutôt d'écrire plutôt "login" ou "loginForm".

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 28
    Par défaut
    J'ai essayé de modifier le nom du model attribute mais ça me renvoie toujours la même erreur.

    Voici la trace laissée dans la console eclipse :

    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    4 avr. 2012 18:01:47 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: C:\Program Files\Java\jre6\bin;.;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:\oraclexe\app\oracle\product\10.2.0\server\bin;C:\Program Files (x86)\MiKTeX 2.9\miktex\bin;C:\Program Files\Common Files\Microsoft Shared\Windows Live;C:\Program Files (x86)\Common Files\Microsoft Shared\Windows Live;C:\Program Files (x86)\AMD APP\bin\x86_64;C:\Program Files (x86)\AMD APP\bin\x86;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\Dell\DW WLAN Card;C:\Program Files (x86)\Common Files\Roxio Shared\DLLShared\;C:\Program Files (x86)\ATI Technologies\ATI.ACE\Core-Static;C:\Program Files\WIDCOMM\Bluetooth Software\;C:\Program Files\WIDCOMM\Bluetooth Software\syswow64;C:\Program Files (x86)\Windows Live\Shared;C:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\;C:\Program Files\Microsoft SQL Server\100\Tools\Binn\;C:\Program Files\Microsoft SQL Server\100\DTS\Binn\;C:\Program Files (x86)\QuickTime\QTSystem\
    4 avr. 2012 18:01:47 org.apache.tomcat.util.digester.SetPropertiesRule begin
    ATTENTION: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:VinylRecordManager' did not find a matching property.
    4 avr. 2012 18:01:48 org.apache.coyote.AbstractProtocol init
    INFO: Initializing ProtocolHandler ["http-bio-8083"]
    4 avr. 2012 18:01:48 org.apache.coyote.AbstractProtocol init
    INFO: Initializing ProtocolHandler ["ajp-bio-8009"]
    4 avr. 2012 18:01:48 org.apache.catalina.startup.Catalina load
    INFO: Initialization processed in 868 ms
    4 avr. 2012 18:01:48 org.apache.catalina.core.StandardService startInternal
    INFO: Démarrage du service Catalina
    4 avr. 2012 18:01:48 org.apache.catalina.core.StandardEngine startInternal
    INFO: Starting Servlet Engine: Apache Tomcat/7.0.26
    4 avr. 2012 18:01:51 org.apache.catalina.core.ApplicationContext log
    INFO: No Spring WebApplicationInitializer types detected on classpath
    4 avr. 2012 18:01:51 org.apache.catalina.core.ApplicationContext log
    INFO: Initializing Spring root WebApplicationContext
    4 avr. 2012 18:01:51 org.springframework.web.context.ContextLoader initWebApplicationContext
    INFO: Root WebApplicationContext: initialization started
    4 avr. 2012 18:01:51 org.springframework.context.support.AbstractApplicationContext prepareRefresh
    INFO: Refreshing Root WebApplicationContext: startup date [Wed Apr 04 18:01:51 CEST 2012]; root of context hierarchy
    4 avr. 2012 18:01:51 org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
    INFO: Loading XML bean definitions from class path resource [application-context.xml]
    4 avr. 2012 18:01:52 org.springframework.beans.factory.support.DefaultListableBeanFactory preInstantiateSingletons
    INFO: Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@5893bca2: defining beans [dataSource,sessionFactory,transactionManager,org.springframework.aop.config.internalAutoProxyCreator,org.springframework.transaction.annotation.AnnotationTransactionAttributeSource#0,org.springframework.transaction.interceptor.TransactionInterceptor#0,org.springframework.transaction.config.internalTransactionAdvisor,org.springframework.context.annotation.internalConfigurationAnnotationProcessor,org.springframework.context.annotation.internalAutowiredAnnotationProcessor,org.springframework.context.annotation.internalRequiredAnnotationProcessor,org.springframework.context.annotation.internalCommonAnnotationProcessor,org.springframework.context.annotation.internalPersistenceAnnotationProcessor,UserService,org.springframework.context.annotation.ConfigurationClassPostProcessor$ImportAwareBeanPostProcessor#0]; root of factory hierarchy
    4 avr. 2012 18:01:52 org.springframework.jdbc.datasource.DriverManagerDataSource setDriverClassName
    INFO: Loaded JDBC driver: com.mysql.jdbc.Driver
    4 avr. 2012 18:01:52 org.hibernate.annotations.common.Version <clinit>
    INFO: HCANN000001: Hibernate Commons Annotations {4.0.1.Final}
    4 avr. 2012 18:01:52 org.hibernate.Version logVersion
    INFO: HHH000412: Hibernate Core {4.1.1}
    4 avr. 2012 18:01:52 org.hibernate.cfg.Environment <clinit>
    INFO: HHH000206: hibernate.properties not found
    4 avr. 2012 18:01:52 org.hibernate.cfg.Environment buildBytecodeProvider
    INFO: HHH000021: Bytecode provider name : javassist
    4 avr. 2012 18:01:53 org.hibernate.dialect.Dialect <init>
    INFO: HHH000400: Using dialect: org.hibernate.dialect.MySQLDialect
    4 avr. 2012 18:01:53 org.hibernate.engine.transaction.internal.TransactionFactoryInitiator initiateService
    INFO: HHH000399: Using default transaction strategy (direct JDBC transactions)
    4 avr. 2012 18:01:53 org.hibernate.hql.internal.ast.ASTQueryTranslatorFactory <init>
    INFO: HHH000397: Using ASTQueryTranslatorFactory
    4 avr. 2012 18:01:54 org.springframework.orm.hibernate4.HibernateTransactionManager afterPropertiesSet
    INFO: Using DataSource [org.springframework.jdbc.datasource.DriverManagerDataSource@6406f3ea] of Hibernate SessionFactory for HibernateTransactionManager
    4 avr. 2012 18:01:54 org.springframework.web.context.ContextLoader initWebApplicationContext
    INFO: Root WebApplicationContext: initialization completed in 2938 ms
    4 avr. 2012 18:01:54 org.apache.catalina.core.ApplicationContext log
    INFO: Initializing Spring FrameworkServlet 'spring-dispatcher'
    4 avr. 2012 18:01:54 org.springframework.web.servlet.FrameworkServlet initServletBean
    INFO: FrameworkServlet 'spring-dispatcher': initialization started
    4 avr. 2012 18:01:54 org.springframework.context.support.AbstractApplicationContext prepareRefresh
    INFO: Refreshing WebApplicationContext for namespace 'spring-dispatcher-servlet': startup date [Wed Apr 04 18:01:54 CEST 2012]; parent: Root WebApplicationContext
    4 avr. 2012 18:01:54 org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
    INFO: Loading XML bean definitions from ServletContext resource [/WEB-INF/spring-dispatcher-servlet.xml]
    4 avr. 2012 18:01:54 org.springframework.beans.factory.support.DefaultListableBeanFactory preInstantiateSingletons
    INFO: Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@44f1b25e: defining beans [org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping#0,org.springframework.format.support.FormattingConversionServiceFactoryBean#0,org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter#0,org.springframework.web.servlet.handler.MappedInterceptor#0,org.springframework.web.servlet.mvc.method.annotation.ExceptionHandlerExceptionResolver#0,org.springframework.web.servlet.mvc.annotation.ResponseStatusExceptionResolver#0,org.springframework.web.servlet.mvc.support.DefaultHandlerExceptionResolver#0,org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping,org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter,org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter,LoginController,org.springframework.context.annotation.internalConfigurationAnnotationProcessor,org.springframework.context.annotation.internalAutowiredAnnotationProcessor,org.springframework.context.annotation.internalRequiredAnnotationProcessor,org.springframework.context.annotation.internalCommonAnnotationProcessor,org.springframework.context.annotation.internalPersistenceAnnotationProcessor,viewResolver,org.springframework.context.annotation.ConfigurationClassPostProcessor$ImportAwareBeanPostProcessor#0]; parent: org.springframework.beans.factory.support.DefaultListableBeanFactory@5893bca2
    4 avr. 2012 18:01:54 org.springframework.web.servlet.handler.AbstractHandlerMethodMapping registerHandlerMethod
    INFO: Mapped "{[/VinylRecordManager/login],methods=[GET],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public java.lang.String app.web.LoginController.getForm(org.springframework.ui.Model)
    4 avr. 2012 18:01:54 org.springframework.web.servlet.handler.AbstractHandlerMethodMapping registerHandlerMethod
    INFO: Mapped "{[/VinylRecordManager/login],methods=[POST],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public java.lang.String app.web.LoginController.Authentification(app.web.LoginForm,javax.servlet.http.HttpSession)
    4 avr. 2012 18:01:54 org.springframework.web.servlet.FrameworkServlet initServletBean
    INFO: FrameworkServlet 'spring-dispatcher': initialization completed in 635 ms
    4 avr. 2012 18:01:54 org.apache.coyote.AbstractProtocol start
    INFO: Starting ProtocolHandler ["http-bio-8083"]
    4 avr. 2012 18:01:54 org.apache.coyote.AbstractProtocol start
    INFO: Starting ProtocolHandler ["ajp-bio-8009"]
    4 avr. 2012 18:01:54 org.apache.catalina.startup.Catalina start
    INFO: Server startup in 6812 ms
    4 avr. 2012 18:02:03 org.apache.jasper.compiler.TldLocationsCache tldScanJar
    INFO: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
    4 avr. 2012 18:02:04 org.springframework.web.servlet.tags.RequestContextAwareTag doStartTag
    GRAVE: Neither BindingResult nor plain target object for bean name 'loginform' available as request attribute
    java.lang.IllegalStateException: Neither BindingResult nor plain target object for bean name 'loginform' available as request attribute
    	at org.springframework.web.servlet.support.BindStatus.<init>(BindStatus.java:141)
    	at org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.getBindStatus(AbstractDataBoundFormElementTag.java:178)
    	at org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.getPropertyPath(AbstractDataBoundFormElementTag.java:198)
    	at org.springframework.web.servlet.tags.form.LabelTag.autogenerateFor(LabelTag.java:129)
    	at org.springframework.web.servlet.tags.form.LabelTag.resolveFor(LabelTag.java:119)
    	at org.springframework.web.servlet.tags.form.LabelTag.writeTagContent(LabelTag.java:89)
    	at org.springframework.web.servlet.tags.form.AbstractFormTag.doStartTagInternal(AbstractFormTag.java:102)
    	at org.springframework.web.servlet.tags.RequestContextAwareTag.doStartTag(RequestContextAwareTag.java:79)
    	at org.apache.jsp.login_jsp._jspx_meth_form_005flabel_005f0(login_jsp.java:195)
    	at org.apache.jsp.login_jsp._jspx_meth_form_005fform_005f0(login_jsp.java:138)
    	at org.apache.jsp.login_jsp._jspService(login_jsp.java:93)
    	at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
    	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
    	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
    	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
    	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
    	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
    	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
    	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
    	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
    	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
    	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:987)
    	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:579)
    	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:307)
    	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    	at java.lang.Thread.run(Unknown Source)
    4 avr. 2012 18:02:04 org.apache.catalina.core.StandardWrapperValve invoke
    GRAVE: Servlet.service() for servlet [jsp] in context with path [/VinylRecordManager] threw exception [An exception occurred processing JSP page /login.jsp at line 25
     
    22: 			<p>Utilisez votre nom d'utilisateur et votre mot de passe pour accéder à votre compte.</p>
    23: 		</div>
    24: 		<div class="span7 well">
    25: 			<form:label path="userName">Nom d'utilisateur</form:label> <form:input path="userName"/> 
    26: 			<form:label path="password">Mot de passe</form:label> <form:input path="password"/>
    27: 		</div>
    28: 		<div class="span7 well">
     
     
    Stacktrace:] with root cause
    java.lang.IllegalStateException: Neither BindingResult nor plain target object for bean name 'loginform' available as request attribute
    	at org.springframework.web.servlet.support.BindStatus.<init>(BindStatus.java:141)
    	at org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.getBindStatus(AbstractDataBoundFormElementTag.java:178)
    	at org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.getPropertyPath(AbstractDataBoundFormElementTag.java:198)
    	at org.springframework.web.servlet.tags.form.LabelTag.autogenerateFor(LabelTag.java:129)
    	at org.springframework.web.servlet.tags.form.LabelTag.resolveFor(LabelTag.java:119)
    	at org.springframework.web.servlet.tags.form.LabelTag.writeTagContent(LabelTag.java:89)
    	at org.springframework.web.servlet.tags.form.AbstractFormTag.doStartTagInternal(AbstractFormTag.java:102)
    	at org.springframework.web.servlet.tags.RequestContextAwareTag.doStartTag(RequestContextAwareTag.java:79)
    	at org.apache.jsp.login_jsp._jspx_meth_form_005flabel_005f0(login_jsp.java:195)
    	at org.apache.jsp.login_jsp._jspx_meth_form_005fform_005f0(login_jsp.java:138)
    	at org.apache.jsp.login_jsp._jspService(login_jsp.java:93)
    	at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
    	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
    	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
    	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
    	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
    	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
    	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
    	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
    	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
    	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
    	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:987)
    	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:579)
    	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:307)
    	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    	at java.lang.Thread.run(Unknown Source)
    Voici l'erreur 500 affiché par Tomcat :

    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    Etat HTTP 500 - 
     
    --------------------------------------------------------------------------------
     
    type Rapport d''exception
     
    message 
     
    description Le serveur a rencontré une erreur interne () qui l'a empêché de satisfaire la requête.
     
    exception 
     
    org.apache.jasper.JasperException: An exception occurred processing JSP page /login.jsp at line 25
     
    22: 			<p>Utilisez votre nom d'utilisateur et votre mot de passe pour accéder à votre compte.</p>
    23: 		</div>
    24: 		<div class="span7 well">
    25: 			<form:label path="userName">Nom d'utilisateur</form:label> <form:input path="userName"/> 
    26: 			<form:label path="password">Mot de passe</form:label> <form:input path="password"/>
    27: 		</div>
    28: 		<div class="span7 well">
     
     
    Stacktrace:
    	org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:568)
    	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:465)
    	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
    	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
     
     
    cause mère 
     
    java.lang.IllegalStateException: Neither BindingResult nor plain target object for bean name 'loginform' available as request attribute
    	org.springframework.web.servlet.support.BindStatus.<init>(BindStatus.java:141)
    	org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.getBindStatus(AbstractDataBoundFormElementTag.java:178)
    	org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.getPropertyPath(AbstractDataBoundFormElementTag.java:198)
    	org.springframework.web.servlet.tags.form.LabelTag.autogenerateFor(LabelTag.java:129)
    	org.springframework.web.servlet.tags.form.LabelTag.resolveFor(LabelTag.java:119)
    	org.springframework.web.servlet.tags.form.LabelTag.writeTagContent(LabelTag.java:89)
    	org.springframework.web.servlet.tags.form.AbstractFormTag.doStartTagInternal(AbstractFormTag.java:102)
    	org.springframework.web.servlet.tags.RequestContextAwareTag.doStartTag(RequestContextAwareTag.java:79)
    	org.apache.jsp.login_jsp._jspx_meth_form_005flabel_005f0(login_jsp.java:195)
    	org.apache.jsp.login_jsp._jspx_meth_form_005fform_005f0(login_jsp.java:138)
    	org.apache.jsp.login_jsp._jspService(login_jsp.java:93)
    	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
    	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
    	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
     
     
    note La trace complète de la cause mère de cette erreur est disponible dans les fichiers journaux de Apache Tomcat/7.0.26.

  4. #4
    Membre éprouvé Avatar de chewing-gum
    Homme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2009
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Novembre 2009
    Messages : 105
    Par défaut
    La classe "LoginForm" ne contient pas d'annotations. Si tu n'utilises pas les annotations, tu utilises alors un applicationContext.xml.
    Question : tu as bien un bean de type "LoginForm" dans ton applicationContext ?

    Sinon, ce que je comprends de l'erreur, c'est qu'il n'y a pas de bean loginForm en requestAttribute

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 28
    Par défaut
    J'ai essayé de rajouter un bean de loginForm dans application-context.xml mais ca a rien changé. Par contre, je ne sais pas quel type d'annotations mettre dans le fichier LoginForm.java. J'ai essaye de me baser sur l'exemple du site http://www.roseindia.net/tutorial/sp...m-example.html et j'ai vu qu'il n'utilisait pas d'annotations dans leur classe qui leur sert de modèle de formulaire.

    Voici mon fichier Application-context.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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
    	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    	xmlns:aop="http://www.springframework.org/schema/aop"
    	xmlns:context="http://www.springframework.org/schema/context"
    	xmlns:tx="http://www.springframework.org/schema/tx"
    	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
    		http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.1.xsd
    		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd
    		http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd">
     
    	<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    		<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
    		<property name="url" value="jdbc:mysql://localhost/hibernate"/>
    		<property name="username" value="root"/>
    		<property name="password" value="admin"/>
    	</bean>
     
    	<bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
    		<property name="dataSource" ref="dataSource"/>
    		<property name="annotatedClasses">
    			<list>
    				<value>app.model.FieldOwnedRecords</value>
    				<value>app.model.OwnRecord</value>
    				<value>app.model.Updatehistory</value>
    				<value>app.model.Evaluation</value>
    				<value>app.model.Soundtrack</value>
    				<value>app.model.Playlist</value>
    				<value>app.model.Comment</value>
    				<value>app.model.Field</value>
    				<value>app.model.Artist</value>
    				<value>app.model.AuthenticatedUser</value>
            		<value>app.model.Record</value>
    			</list>
    		</property>
    		<property name="hibernateProperties">
    			<props>
    				<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>	
    			</props>
    		</property>
    	</bean>
     
    	<bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager">
    		<property name="sessionFactory" ref="sessionFactory"/>
    	</bean>
     
    	<tx:annotation-driven transaction-manager="transactionManager"/>
    	<context:annotation-config/>
    	<context:component-scan base-package="app.service"></context:component-scan>
     
    </beans>
    Voici mon fichier spring-dispatcher-servlet.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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    <?xml version="1.0" encoding="UTF-8"?>
     
    <beans xmlns="http://www.springframework.org/schema/beans"
     
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:p="http://www.springframework.org/schema/p"
     
    xmlns:context="http://www.springframework.org/schema/context"
     
    xmlns:mvc="http://www.springframework.org/schema/mvc"
     
    xsi:schemaLocation="
     
    http://www.springframework.org/schema/beans
     
    http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
     
    http://www.springframework.org/schema/context
     
    http://www.springframework.org/schema/context/spring-context-3.0.xsd
     
    http://www.springframework.org/schema/mvc
     
    http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
     
    ">
     
    <!-- Enable annotation driven controllers, validation etc... -->
     
    <mvc:annotation-driven />
     
    <context:component-scan base-package="app.web" />
     
    <bean id="viewResolver"
    		class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    		<property name="prefix">
    			<value>/</value>
    		</property>
    		<property name="suffix">
    			<value>.jsp</value>
    		</property>
    	</bean>
     
    </beans>

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 141
    Par défaut
    Bonsoir, je ne pense pas que ce qque t'as fait puisse marcher, t'as l'url par défaut de ton controller, mais tes methodes n'ont pas d'url, je te conseillerai de de spécifier explicitement les url pour chaque méthode, sinon le plus simple c'est de faire une seule méthode qui fais les 2, parce que la tu te compliques les choses. Moi à ta place je vire la méthode getForm, et je ne considère que l'autre. Il suffit alors de tester si ton model est une nouvelle instance tu renvoies fais ce qui est dans la méthode getForm, sinon tu fais tout ce qui est dans la seconde méthode. Faut faire les choses plus simples que de les compliquer...

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 28
    Par défaut
    j'ai essayé de modifier les méthodes de mon contrôleur et d'ajouter une annotation component à ma classe LoginForm. java mais cela me renvoie la même erreur. Je ne sais plus dans quelle direction chercher.

    trace eclise :

    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    5 avr. 2012 13:37:46 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: C:\Program Files\Java\jre6\bin;.;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:\oraclexe\app\oracle\product\10.2.0\server\bin;C:\Program Files (x86)\MiKTeX 2.9\miktex\bin;C:\Program Files\Common Files\Microsoft Shared\Windows Live;C:\Program Files (x86)\Common Files\Microsoft Shared\Windows Live;C:\Program Files (x86)\AMD APP\bin\x86_64;C:\Program Files (x86)\AMD APP\bin\x86;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\Dell\DW WLAN Card;C:\Program Files (x86)\Common Files\Roxio Shared\DLLShared\;C:\Program Files (x86)\ATI Technologies\ATI.ACE\Core-Static;C:\Program Files\WIDCOMM\Bluetooth Software\;C:\Program Files\WIDCOMM\Bluetooth Software\syswow64;C:\Program Files (x86)\Windows Live\Shared;C:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\;C:\Program Files\Microsoft SQL Server\100\Tools\Binn\;C:\Program Files\Microsoft SQL Server\100\DTS\Binn\;C:\Program Files (x86)\QuickTime\QTSystem\
    5 avr. 2012 13:37:46 org.apache.tomcat.util.digester.SetPropertiesRule begin
    ATTENTION: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:VinylRecordManager' did not find a matching property.
    5 avr. 2012 13:37:46 org.apache.coyote.AbstractProtocol init
    INFO: Initializing ProtocolHandler ["http-bio-8083"]
    5 avr. 2012 13:37:46 org.apache.coyote.AbstractProtocol init
    INFO: Initializing ProtocolHandler ["ajp-bio-8009"]
    5 avr. 2012 13:37:46 org.apache.catalina.startup.Catalina load
    INFO: Initialization processed in 1037 ms
    5 avr. 2012 13:37:47 org.apache.catalina.core.StandardService startInternal
    INFO: Démarrage du service Catalina
    5 avr. 2012 13:37:47 org.apache.catalina.core.StandardEngine startInternal
    INFO: Starting Servlet Engine: Apache Tomcat/7.0.26
    5 avr. 2012 13:37:49 org.apache.catalina.core.ApplicationContext log
    INFO: No Spring WebApplicationInitializer types detected on classpath
    5 avr. 2012 13:37:49 org.apache.catalina.core.ApplicationContext log
    INFO: Initializing Spring root WebApplicationContext
    5 avr. 2012 13:37:49 org.springframework.web.context.ContextLoader initWebApplicationContext
    INFO: Root WebApplicationContext: initialization started
    5 avr. 2012 13:37:50 org.springframework.context.support.AbstractApplicationContext prepareRefresh
    INFO: Refreshing Root WebApplicationContext: startup date [Thu Apr 05 13:37:50 CEST 2012]; root of context hierarchy
    5 avr. 2012 13:37:50 org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
    INFO: Loading XML bean definitions from class path resource [application-context.xml]
    5 avr. 2012 13:37:50 org.springframework.beans.factory.support.DefaultListableBeanFactory preInstantiateSingletons
    INFO: Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@4d898115: defining beans [dataSource,sessionFactory,transactionManager,org.springframework.aop.config.internalAutoProxyCreator,org.springframework.transaction.annotation.AnnotationTransactionAttributeSource#0,org.springframework.transaction.interceptor.TransactionInterceptor#0,org.springframework.transaction.config.internalTransactionAdvisor,org.springframework.context.annotation.internalConfigurationAnnotationProcessor,org.springframework.context.annotation.internalAutowiredAnnotationProcessor,org.springframework.context.annotation.internalRequiredAnnotationProcessor,org.springframework.context.annotation.internalCommonAnnotationProcessor,org.springframework.context.annotation.internalPersistenceAnnotationProcessor,UserService,LoginController,loginform,org.springframework.context.annotation.ConfigurationClassPostProcessor$ImportAwareBeanPostProcessor#0]; root of factory hierarchy
    5 avr. 2012 13:37:51 org.springframework.jdbc.datasource.DriverManagerDataSource setDriverClassName
    INFO: Loaded JDBC driver: com.mysql.jdbc.Driver
    5 avr. 2012 13:37:51 org.hibernate.annotations.common.Version <clinit>
    INFO: HCANN000001: Hibernate Commons Annotations {4.0.1.Final}
    5 avr. 2012 13:37:51 org.hibernate.Version logVersion
    INFO: HHH000412: Hibernate Core {4.1.1}
    5 avr. 2012 13:37:51 org.hibernate.cfg.Environment <clinit>
    INFO: HHH000206: hibernate.properties not found
    5 avr. 2012 13:37:51 org.hibernate.cfg.Environment buildBytecodeProvider
    INFO: HHH000021: Bytecode provider name : javassist
    5 avr. 2012 13:37:52 org.hibernate.dialect.Dialect <init>
    INFO: HHH000400: Using dialect: org.hibernate.dialect.MySQLDialect
    5 avr. 2012 13:37:52 org.hibernate.engine.transaction.internal.TransactionFactoryInitiator initiateService
    INFO: HHH000399: Using default transaction strategy (direct JDBC transactions)
    5 avr. 2012 13:37:52 org.hibernate.hql.internal.ast.ASTQueryTranslatorFactory <init>
    INFO: HHH000397: Using ASTQueryTranslatorFactory
    5 avr. 2012 13:37:52 org.springframework.orm.hibernate4.HibernateTransactionManager afterPropertiesSet
    INFO: Using DataSource [org.springframework.jdbc.datasource.DriverManagerDataSource@3aa42c31] of Hibernate SessionFactory for HibernateTransactionManager
    5 avr. 2012 13:37:53 org.springframework.web.context.ContextLoader initWebApplicationContext
    INFO: Root WebApplicationContext: initialization completed in 3052 ms
    5 avr. 2012 13:37:53 org.apache.catalina.core.ApplicationContext log
    INFO: Initializing Spring FrameworkServlet 'spring-dispatcher'
    5 avr. 2012 13:37:53 org.springframework.web.servlet.FrameworkServlet initServletBean
    INFO: FrameworkServlet 'spring-dispatcher': initialization started
    5 avr. 2012 13:37:53 org.springframework.context.support.AbstractApplicationContext prepareRefresh
    INFO: Refreshing WebApplicationContext for namespace 'spring-dispatcher-servlet': startup date [Thu Apr 05 13:37:53 CEST 2012]; parent: Root WebApplicationContext
    5 avr. 2012 13:37:53 org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
    INFO: Loading XML bean definitions from ServletContext resource [/WEB-INF/spring-dispatcher-servlet.xml]
    5 avr. 2012 13:37:53 org.springframework.beans.factory.support.DefaultListableBeanFactory preInstantiateSingletons
    INFO: Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@6feb139e: defining beans [org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping#0,org.springframework.format.support.FormattingConversionServiceFactoryBean#0,org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter#0,org.springframework.web.servlet.handler.MappedInterceptor#0,org.springframework.web.servlet.mvc.method.annotation.ExceptionHandlerExceptionResolver#0,org.springframework.web.servlet.mvc.annotation.ResponseStatusExceptionResolver#0,org.springframework.web.servlet.mvc.support.DefaultHandlerExceptionResolver#0,org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping,org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter,org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter,viewResolver]; parent: org.springframework.beans.factory.support.DefaultListableBeanFactory@4d898115
    5 avr. 2012 13:37:53 org.springframework.web.servlet.FrameworkServlet initServletBean
    INFO: FrameworkServlet 'spring-dispatcher': initialization completed in 461 ms
    5 avr. 2012 13:37:53 org.apache.coyote.AbstractProtocol start
    INFO: Starting ProtocolHandler ["http-bio-8083"]
    5 avr. 2012 13:37:53 org.apache.coyote.AbstractProtocol start
    INFO: Starting ProtocolHandler ["ajp-bio-8009"]
    5 avr. 2012 13:37:53 org.apache.catalina.startup.Catalina start
    INFO: Server startup in 6568 ms
    5 avr. 2012 13:38:08 org.springframework.web.servlet.tags.RequestContextAwareTag doStartTag
    GRAVE: Neither BindingResult nor plain target object for bean name 'loginform' available as request attribute
    java.lang.IllegalStateException: Neither BindingResult nor plain target object for bean name 'loginform' available as request attribute
    	at org.springframework.web.servlet.support.BindStatus.<init>(BindStatus.java:141)
    	at org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.getBindStatus(AbstractDataBoundFormElementTag.java:178)
    	at org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.getPropertyPath(AbstractDataBoundFormElementTag.java:198)
    	at org.springframework.web.servlet.tags.form.LabelTag.autogenerateFor(LabelTag.java:129)
    	at org.springframework.web.servlet.tags.form.LabelTag.resolveFor(LabelTag.java:119)
    	at org.springframework.web.servlet.tags.form.LabelTag.writeTagContent(LabelTag.java:89)
    	at org.springframework.web.servlet.tags.form.AbstractFormTag.doStartTagInternal(AbstractFormTag.java:102)
    	at org.springframework.web.servlet.tags.RequestContextAwareTag.doStartTag(RequestContextAwareTag.java:79)
    	at org.apache.jsp.login_jsp._jspx_meth_form_005flabel_005f0(login_jsp.java:195)
    	at org.apache.jsp.login_jsp._jspx_meth_form_005fform_005f0(login_jsp.java:138)
    	at org.apache.jsp.login_jsp._jspService(login_jsp.java:93)
    	at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
    	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
    	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
    	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
    	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
    	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
    	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
    	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
    	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
    	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
    	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:987)
    	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:579)
    	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:307)
    	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    	at java.lang.Thread.run(Unknown Source)
    5 avr. 2012 13:38:08 org.apache.catalina.core.StandardWrapperValve invoke
    GRAVE: Servlet.service() for servlet [jsp] in context with path [/VinylRecordManager] threw exception [java.lang.IllegalStateException: Neither BindingResult nor plain target object for bean name 'loginform' available as request attribute] with root cause
    java.lang.IllegalStateException: Neither BindingResult nor plain target object for bean name 'loginform' available as request attribute
    	at org.springframework.web.servlet.support.BindStatus.<init>(BindStatus.java:141)
    	at org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.getBindStatus(AbstractDataBoundFormElementTag.java:178)
    	at org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.getPropertyPath(AbstractDataBoundFormElementTag.java:198)
    	at org.springframework.web.servlet.tags.form.LabelTag.autogenerateFor(LabelTag.java:129)
    	at org.springframework.web.servlet.tags.form.LabelTag.resolveFor(LabelTag.java:119)
    	at org.springframework.web.servlet.tags.form.LabelTag.writeTagContent(LabelTag.java:89)
    	at org.springframework.web.servlet.tags.form.AbstractFormTag.doStartTagInternal(AbstractFormTag.java:102)
    	at org.springframework.web.servlet.tags.RequestContextAwareTag.doStartTag(RequestContextAwareTag.java:79)
    	at org.apache.jsp.login_jsp._jspx_meth_form_005flabel_005f0(login_jsp.java:195)
    	at org.apache.jsp.login_jsp._jspx_meth_form_005fform_005f0(login_jsp.java:138)
    	at org.apache.jsp.login_jsp._jspService(login_jsp.java:93)
    	at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
    	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
    	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
    	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
    	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
    	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
    	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
    	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
    	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
    	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
    	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:987)
    	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:579)
    	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:307)
    	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    	at java.lang.Thread.run(Unknown Source)

    trace tomcat :

    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    Etat HTTP 500 - 
     
    --------------------------------------------------------------------------------
     
    type Rapport d''exception
     
    message 
     
    description Le serveur a rencontré une erreur interne () qui l'a empêché de satisfaire la requête.
     
    exception 
     
    org.apache.jasper.JasperException: java.lang.IllegalStateException: Neither BindingResult nor plain target object for bean name 'loginform' available as request attribute
    	org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:549)
    	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:465)
    	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
    	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
     
     
    cause mère 
     
    java.lang.IllegalStateException: Neither BindingResult nor plain target object for bean name 'loginform' available as request attribute
    	org.springframework.web.servlet.support.BindStatus.<init>(BindStatus.java:141)
    	org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.getBindStatus(AbstractDataBoundFormElementTag.java:178)
    	org.springframework.web.servlet.tags.form.AbstractDataBoundFormElementTag.getPropertyPath(AbstractDataBoundFormElementTag.java:198)
    	org.springframework.web.servlet.tags.form.LabelTag.autogenerateFor(LabelTag.java:129)
    	org.springframework.web.servlet.tags.form.LabelTag.resolveFor(LabelTag.java:119)
    	org.springframework.web.servlet.tags.form.LabelTag.writeTagContent(LabelTag.java:89)
    	org.springframework.web.servlet.tags.form.AbstractFormTag.doStartTagInternal(AbstractFormTag.java:102)
    	org.springframework.web.servlet.tags.RequestContextAwareTag.doStartTag(RequestContextAwareTag.java:79)
    	org.apache.jsp.login_jsp._jspx_meth_form_005flabel_005f0(login_jsp.java:195)
    	org.apache.jsp.login_jsp._jspx_meth_form_005fform_005f0(login_jsp.java:138)
    	org.apache.jsp.login_jsp._jspService(login_jsp.java:93)
    	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
    	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
    	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
     
     
    note La trace complète de la cause mère de cette erreur est disponible dans les fichiers journaux de Apache Tomcat/7.0.26.
    classe controleur :

    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
     
    package app.web;
     
     
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.ModelAttribute;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RequestMethod;
    import org.springframework.ui.Model;
     
    import app.service.UserService;
     
     
     
     
    @Controller("LoginController")
    @RequestMapping("/VinylRecordManager")
    public class LoginController {
     
    	@Autowired
    	private UserService user;
     
    	@RequestMapping(value="/login", method = RequestMethod.GET)
    	public String getForm(Model model) {
    		model.addAttribute("loginform", new LoginForm());
    		return "login";
    	}
     
    	@RequestMapping(value="/login/form",method = RequestMethod.POST)
    	public String Authentification(@ModelAttribute("loginform") LoginForm loginform) {
    		if (user.login(loginform.getUserName(), loginform.getPassword())==true) 
    				System.out.println("authentifie");
    				else
    					System.out.println("error");
    		return "index";
    	}
    }
    fichier login.jsp

    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
        pageEncoding="ISO-8859-1"%>
    <%@ taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
    <!-- tests -->
    <% //session.removeAttribute("nom");
    int nb_p = 7;
    String[] st = new String[50];
    for(int i=1; i <= nb_p; i++) st[i-1]="Playlist "+i;
    session.setAttribute("playlists", st);%>
     
    <!-- header -->
    <jsp:include page="HeaderFooter/header.jsp"/>
     
    <!-- side menu -->
    <jsp:include page="Content/side_menu.jsp"/>
     
    <!-- content -->
    <div class="span9">
    	<form:form modelAttribute="loginform" action="/VinylRecordManager/login/form" method="post">
    		<div class="well">
    			<h1>Connexion</h1>
    			<p>Utilisez votre nom d'utilisateur et votre mot de passe pour accéder à votre compte.</p>
    		</div>
    		<div class="span7 well">
    			<form:label path="userName">Nom d'utilisateur</form:label> <form:input path="userName"/> 
    			<form:label path="password">Mot de passe</form:label> <form:input path="password"/>
    		</div>
    		<div class="span7 well">
    			<div class="btn-toolbar pull-right">
    				<div class="btn-group">
    					<a class="btn" href="register.jsp">Je n'ai pas de compte utilisateur &raquo;</a>
    				</div>
    				<div class="btn-group">
    	  				<input type="submit" class="btn" value="Valider">
    	  				<a class="btn" href="index.jsp">Accueil</a>
    				</div>
    			</div>
    		</div>
    	</form:form>
    </div><!--/span-->
     
    <!-- footer -->
    <jsp:include page="HeaderFooter/footer.jsp"/>
    application-context.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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
    	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    	xmlns:aop="http://www.springframework.org/schema/aop"
    	xmlns:context="http://www.springframework.org/schema/context"
    	xmlns:tx="http://www.springframework.org/schema/tx"
    	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
    		http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.1.xsd
    		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd
    		http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd">
     
    	<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    		<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
    		<property name="url" value="jdbc:mysql://localhost/hibernate"/>
    		<property name="username" value="root"/>
    		<property name="password" value="admin"/>
    	</bean>
     
    	<bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
    		<property name="dataSource" ref="dataSource"/>
    		<property name="annotatedClasses">
    			<list>
    				<value>app.model.FieldOwnedRecords</value>
    				<value>app.model.OwnRecord</value>
    				<value>app.model.Updatehistory</value>
    				<value>app.model.Evaluation</value>
    				<value>app.model.Soundtrack</value>
    				<value>app.model.Playlist</value>
    				<value>app.model.Comment</value>
    				<value>app.model.Field</value>
    				<value>app.model.Artist</value>
    				<value>app.model.AuthenticatedUser</value>
            		<value>app.model.Record</value>
    			</list>
    		</property>
    		<property name="hibernateProperties">
    			<props>
    				<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>	
    			</props>
    		</property>
    	</bean>
     
    	<bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager">
    		<property name="sessionFactory" ref="sessionFactory"/>
    	</bean>
     
    	<tx:annotation-driven transaction-manager="transactionManager"/>
    	<context:annotation-config/>
    	<context:component-scan base-package="app"></context:component-scan>
     
    </beans>

    classe LoginForm.java

    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
    22
    23
    24
    package app.web;
     
    import org.springframework.stereotype.Component;
     
    @Component("loginform")
    public class LoginForm {
     
        private String userName;
        private String password;
     
        public void setUserName(String userName) {
                this.userName = userName;
        }
        public String getUserName() {
                return userName;
        }
        public void setPassword(String password) {
                this.password = password;
        }
        public String getPassword() {
                return password;
        }
     
    }

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 10/10/2017, 16h44
  2. Réponses: 4
    Dernier message: 10/12/2014, 20h37
  3. Réponses: 1
    Dernier message: 07/03/2013, 13h18
  4. Réponses: 1
    Dernier message: 31/12/2011, 01h17
  5. Erreur "Neither BindingResult nor plain target object"
    Par daydream123 dans le forum Spring
    Réponses: 0
    Dernier message: 11/09/2011, 15h10

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