2017-08-21 42 views
0

我是新来的春天,我无法找出问题。请帮助我这个。我米即使在我的src位置定义了软件包,也得不到classnotfound exeption。SEVERE:异常发送上下文初始化事件到类的监听器实例org.springframework.web.context.ContextLoaderListener

和我添加了一个监听器,你可以看到它被注释掉在web.xml contextListener class.it也是在src代码定义,但它给ClassNotFound的exception.please建议和帮助我在此

SEVERE: Exception sending context initialized event to listener instance 
    of class org.springframework.web.context.ContextLoaderListener 
org.springframework.beans.factory.BeanCreationException: Error creating 
bean with name 'sessionFactory' defined in ServletContext resource [/WEB-INF/dispatcher-servlet.xml]: Initialization of bean failed; nested exception is org.springframework.beans.TypeMismatchException: Failed to convert property value of type 'java.util.ArrayList' to required type 'java.lang.Class[]' for property 'annotatedClasses'; nested exception is java.lang.IllegalArgumentException: Cannot find class [com.apalya.promo.beans] 
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:547) 
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:475) 
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:304) 
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:228) 
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:300) 
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:195) 
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:684) 
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:760) 
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:482) 
at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:403) 
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:306) 
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:106) 
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4738) 
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5181) 
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1408) 
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1398) 
at java.util.concurrent.FutureTask.run(Unknown Source) 
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
at java.lang.Thread.run(Unknown Source) 
Caused by: org.springframework.beans.TypeMismatchException: Failed to convert property value of type 'java.util.ArrayList' to required type 'java.lang.Class[]' for property 'annotatedClasses'; nested exception is java.lang.IllegalArgumentException: Cannot find class [com.apalya.promo.beans] 
at org.springframework.beans.BeanWrapperImpl.convertIfNecessary(BeanWrapperImpl.java:479) 
at org.springframework.beans.BeanWrapperImpl.convertForProperty(BeanWrapperImpl.java:511) 
at org.springframework.beans.BeanWrapperImpl.convertForProperty(BeanWrapperImpl.java:505) 
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.convertForProperty(AbstractAutowireCapableBeanFactory.java:1502) 
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1461) 
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1197) 
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:537) 
... 20 more 
Caused by: java.lang.IllegalArgumentException: Cannot find class 
[com.apalya.promo.beans] 
at 
org.springframework.util.ClassUtils.resolveClassName(ClassUtils.java:272) 
at org.springframework.beans.propertyeditors.ClassEditor.setAsText(ClassEditor.java:63) 
at org.springframework.beans.TypeConverterDelegate.doConvertTextValue(TypeConverterDelegate.java:430) 
at org.springframework.beans.TypeConverterDelegate.doConvertValue(TypeConverterDelegate.java:403) 
at org.springframework.beans.TypeConverterDelegate.convertIfNecessary(TypeConverterDelegate.java:181) 
at org.springframework.beans.TypeConverterDelegate.convertIfNecessary(TypeConverterDelegate.java:128) 
at org.springframework.beans.TypeConverterDelegate.convertToTypedArray(TypeConverterDelegate.java:441) 
at org.springframework.beans.TypeConverterDelegate.convertIfNecessary(TypeConverterDelegate.java:198) 
at org.springframework.beans.BeanWrapperImpl.convertIfNecessary(BeanWrapperImpl.java:459) 
... 26 more 
Caused by: java.lang.ClassNotFoundException: com.apalya.promo.beans 
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1333) 
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1167) 
at org.springframework.util.ClassUtils.forName(ClassUtils.java:236) 
at org.springframework.util.ClassUtils.resolveClassName(ClassUtils.java:269) 
... 34 more 

,这里是我的web.xml文件

<?xml version="1.0" encoding="UTF-8"?> 
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns="http://java.sun.com/xml/ns/javaee" 
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com 
/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> 



<display-name>Archetype Created Web Application</display-name> 

<listener> 
     <listener-class> 
     org.springframework.web.context.ContextLoaderListener 
    </listener-class> 
</listener> 
<!-- <listener> 
      <listener-class> 
      com.apalya.promo.properties.ContextListener 
      </listener-class> 
</listener> --> 

<servlet> 
    <servlet-name>dispatcher</servlet-name> 
    <servlet-class> 
     org.springframework.web.servlet.DispatcherServlet 
    </servlet-class> 
    <load-on-startup>1</load-on-startup> 
</servlet> 

<servlet-mapping> 
    <servlet-name>dispatcher</servlet-name> 
    <url-pattern>/</url-pattern> 
</servlet-mapping> 

<context-param> 
    <param-name>contextConfigLocation</param-name> 
    <param-value>/WEB-INF/dispatcher-servlet.xml</param-value> 
</context-param> 

`

这是我的调度员servlet.xml文件

<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-3.0.xsd 
http://www.springframework.org/schema/context 
http://www.springframework.org/schema/context/spring-context-3.0.xsd"> 

<!-- Base package for checking the annoted classes --> 
<context:component-scan base-package="com.apalya." /> 

<context:annotation-config></context:annotation-config> 
<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> 

<!-- Configure JDBC Connection--> 
    <bean id="dataSource" 
     class="org.springframework.jdbc.datasource.DriverManagerDataSource"> 
     <property name="driverClassName" value="com.mysql.jdbc.Driver" /> 
     <property name="url" value="jdbc:mysql://localhost:3306/SAMPLE_DB" /> 
     <property name="username" value="admin_user" /> 
     <property name="password" value="admin" /> 
    </bean> 


    <!-- Configure Hibernate 4 Session Facotry --> 
    <bean id="sessionFactory" 
     class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"> 

     <property name="dataSource"> 
      <ref bean="dataSource" /> 
     </property> 

     <property name="hibernateProperties"> 
      <props> 
       <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop> 
       <prop key="hibernate.show_sql">true</prop> 
      </props> 
     </property> 
     <property name="annotatedClasses"> 
     <list> 
       <value>com.apalya.promo.beans</value> <!-- Entity classes--> 
     </list> 
     </property> 

    </bean> 

+0

我高度怀疑'com.apalya.promo.beans'是一个类。您可能想要设置'packagesToScan'属性而不是'LocalSessionFactoryBean'的'annotatedClasses'属性。 –

+0

是的Deinum,我犯了这个错误,并通过纠正它再次运行构建,但现在我得到相同类型的错误由:java.lang.ClassNotFoundException:com.apalya.promo.entity.User.where用户类实际上存在于我的应用程序 –

+0

不根据堆栈跟踪。 –

回答

0

由于com.apalya.promo.beans是一个包不类,因此它抱怨java.lang.IllegalArgumentException: Cannot find class

您应该使用packagesToScan属性而不是annotatedClasses或者,如果您仍想继续使用annotatedClasses,请配置完全限定的实体类名称。

+0

我做了这个改变,我给了完全合格的实体类名称,但仍然显示相同的错误,我认为这不是实际的问题Lovababu,可能会在配置XML文件中有一些错误,请帮助在此 –

+0

请更新问题与新的配置更改和错误。 – Lovababu

相关问题