2017-08-21 40 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

相關問題