简体   繁体   English

创建Bean Spring MVC时出错

[英]Error Creating Bean Spring MVC

I am in the process of creating a portal using spring 4.2.4 and hibernate 4.2.21 Final using maven. 我正在使用Spring 4.2.4和Hibernate 4.2.21 Final使用Maven创建门户。 I am facing the following exception. 我面临以下异常。 I couldn't figure out what mistake am making. 我不知道是什么错误。 I am not using any hibernate.cfg.xml as am making the configuration details inside dispatcher servlet. 我没有使用任何hibernate.cfg.xml,而是在调度程序servlet内进行配置详细信息。 Also in the error stack trace it shows, it could not find the path of model. 同样在它显示的错误堆栈跟踪中,它找不到模型的路径。 Jars i have added through maven is displayed in below picture. 下图显示了我通过Maven添加的Jar。

我通过Maven添加的Jar

This is the directory structure of my application 这是我的应用程序的目录结构

资料夹结构

As in the folder structure, there is employee.java as model. 与文件夹结构一样,有employee.java作为模型。 I am not finding where i have made mistake. 我找不到我犯错的地方。

Exception 例外

HTTP Status 500 - Servlet.init() for servlet hr-servlet threw exception


type Exception report

message Servlet.init() for servlet hr-servlet threw exception

description The server encountered an internal error that prevented it from fulfilling this request.

exception
javax.servlet.ServletException: Servlet.init() for servlet hr-servlet threw exception
    org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
    org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
    org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616)
    org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:522)
    org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1095)
    org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:672)
    org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1500)
    org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1456)
    java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    java.lang.Thread.run(Unknown Source)


root cause
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in ServletContext resource [/WEB-INF/config/hr-servlet.xml]: Invocation of init method failed; nested exception is java.lang.IllegalStateException: org.slf4j.LoggerFactory could not be successfully initialized. See also http://www.slf4j.org/codes.html#unsuccessfulInit
    org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1578)
    org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:545)
    org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482)
    org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
    org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
    org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
    org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
    org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:753)
    org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:839)
    org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:538)
    org.springframework.web.servlet.FrameworkServlet.configureAndRefreshWebApplicationContext(FrameworkServlet.java:668)
    org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:634)
    org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:682)
    org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:553)
    org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:494)
    org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:136)
    javax.servlet.GenericServlet.init(GenericServlet.java:158)
    org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
    org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
    org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616)
    org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:522)
    org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1095)
    org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:672)
    org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1500)
    org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1456)
    java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    java.lang.Thread.run(Unknown Source)


root cause
java.lang.IllegalStateException: org.slf4j.LoggerFactory could not be successfully initialized. See also http://www.slf4j.org/codes.html#unsuccessfulInit
    org.slf4j.LoggerFactory.getILoggerFactory(LoggerFactory.java:276)
    org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:242)
    org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:255)
    org.hibernate.cfg.annotations.reflection.XMLContext.<init>(XMLContext.java:47)
    org.hibernate.cfg.annotations.reflection.JPAMetadataProvider.<init>(JPAMetadataProvider.java:29)
    org.hibernate.cfg.Configuration.createReflectionManager(Configuration.java:2505)
    org.hibernate.cfg.Configuration.reset(Configuration.java:286)
    org.hibernate.cfg.Configuration.<init>(Configuration.java:277)
    org.hibernate.cfg.Configuration.<init>(Configuration.java:281)
    org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.<init>(LocalSessionFactoryBuilder.java:140)
    org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:343)
    org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1637)
    org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1574)
    org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:545)
    org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482)
    org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
    org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
    org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
    org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
    org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:753)
    org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:839)
    org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:538)
    org.springframework.web.servlet.FrameworkServlet.configureAndRefreshWebApplicationContext(FrameworkServlet.java:668)
    org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:634)
    org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:682)
    org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:553)
    org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:494)
    org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:136)
    javax.servlet.GenericServlet.init(GenericServlet.java:158)
    org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
    org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
    org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616)
    org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:522)
    org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1095)
    org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:672)
    org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1500)
    org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1456)
    java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    java.lang.Thread.run(Unknown Source)

Here is my dispatcher servlet. 这是我的调度程序servlet。

   <beans xmlns="http://www.springframework.org/schema/beans"
 xmlns:context="http://www.springframework.org/schema/context"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="
 http://www.springframework.org/schema/beans
 http://www.springframework.org/schema/beans/spring-beans-4.2.xsd
 http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.2.xsd">

 <context:component-scan base-package="com.is.employeeportal.controller" />
<!-- <context:property-placeholder location="com.is.employeeportal.model" /> -->
 <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
 <property name="prefix">
   <value>/WEB-INF/views/</value>
 </property>
 <property name="suffix">
    <value>.jsp</value>
 </property>
 </bean>
 <bean id="dataSource"
        class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
        <property name="driverClassName" value="com.mysql.jdbc.Driver" />
        <property name="url" value="jdbc:mysql://localhost:3306/port_dev" />
        <property name="username" value="port_dev" />
        <property name="password" value="port_dev_123" />
    </bean>

    <bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">


        <property name="dataSource" ref="dataSource" />
        <property name="annotatedClasses">
            <list>
                <value>com.is.employeeportal.model.Employee</value>             
            </list>
        </property>
        <property name="hibernateProperties">
            <props>
                <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
                <prop key="hibernate.show_sql">true</prop>
                <prop key="hibernate.hbm2ddl.auto">update</prop>                
            </props>
        </property>


    </bean>
    <bean id="employeeDAO" class="com.is.employeeportal.dao.EmployeeDao">
        <property name="sessionFactory" ref="sessionFactory" />
    </bean>

    <bean id="hibernateTransactionManager"
        class="org.springframework.orm.hibernate3.HibernateTransactionManager">
        <property name="sessionFactory" ref="sessionFactory" />
    </bean>
<!--    <bean id="hrController" class="com.is.employeeportal.controller.HrController"> -->
<!--    </bean> -->
</beans>

Can anybody enlighten me where i am making the mistake? 有人能启发我犯错的地方吗? I have stuck down with this issue for hours. 我已经坚持了好几个小时了。

SLF4J is only an interface for logging. SLF4J只是用于记录的接口。 You need an implementation. 您需要一个实现。 Log4j is a common choice, but there are some others . Log4j是常见选择,但还有其他一些选择。

If you are using slf4j with log4j, you can use a log4j.properties file, with the content below : 如果将slf4j与log4j一起使用,则可以使用log4j.properties文件,其内容如下:

# Global logging configuration (Options DEBUG, INFO, WARN, ERROR, OFF)
log4j.rootLogger=INFO,stdout,fichier,spring
# mail à ajouter pour que les emails d'alerte sur erreur soient envoyés


# Console output...
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Threshold=INFO
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{dd/MM/yyyy HH:mm:ss} %-5p %x - %m%n
#log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n

log4j.appender.fichier=org.apache.log4j.RollingFileAppender
log4j.appender.fichier.Threshold=INFO
log4j.appender.fichier.File=/var/log/tomcat/spring-web-mvc-json.log
log4j.appender.fichier.layout=org.apache.log4j.PatternLayout
log4j.appender.fichier.layout.ConversionPattern=%d{dd/MM/yyyy HH:mm:ss} %-5p %x - %m%n
log4j.appender.fichier.MaxFileSize=5000KB
log4j.appender.fichier.MaxBackupIndex=10

log4j.appender.spring=org.apache.log4j.RollingFileAppender
log4j.appender.fichier.Threshold=DEBUG
log4j.appender.spring.File=/var/log/tomcat/spring-details.log
log4j.appender.spring.layout=org.apache.log4j.PatternLayout
log4j.appender.spring.layout.ConversionPattern=%d{dd/MM/yyyy HH:mm:ss} %-5p %x - %m%n
log4j.appender.spring.MaxFileSize=5000KB
log4j.appender.spring.MaxBackupIndex=10

# configuration...
org.apache.commons.digester.Digester=INFO

# specific packages coded by myself...
com.bendathierry.spring.web.mvc=DEBUG,fichier

# springframework 3.1.xx packages to log...
org.springframework=DEBUG,spring
org.springframework.beans=DEBUG,spring
org.springframework.security=DEBUG,spring
org.springframework.beans.CachedIntrospectionResults=DEBUG,spring
org.springframework.jdbc.core=DEBUG,spring
org.springframework.transaction.support.TransactionSynchronizationManager=DEBUG,spring
#org.springframework.core=DEBUG
#org.springframework.util=DEBUG
#org.springframework.context=DEBUG
#org.springframework.remoting=DEBUG
#org.springframework.jndi=DEBUG
#org.springframework.http=DEBUG
#org.springframework.web=DEBUG
#org.springframework.scheduling=DEBUG
#org.springframework.scripting=DEBUG
#org.springframework.validation=DEBUG
#org.springframework.mail=DEBUG
#org.springframework.ui=DEBUG
#org.springframework.expression=DEBUG

I think it could help you to create these file with the content given :) 我认为它可以帮助您使用给定的内容来创建这些文件:)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM