2015-04-05 2 views
1

Я пытаюсь исправить свой проект, чтобы иметь возможность используйте Плитки. Но когда я следую инструкциям, я получил эту ошибку.Данный класс представления [org.springframework.web.servlet.view.tiles3.TilesView] не относится к типу [org.springframework.web.servlet.view.AbstractUrlBasedView]

весна-servlet.xml

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://www.springframework.org/schema/beans" 
    xmlns:mvc="http://www.springframework.org/schema/mvc" 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:jee="http://www.springframework.org/schema/jee" xmlns:lang="http://www.springframework.org/schema/lang" 
    xmlns:p="http://www.springframework.org/schema/p" xmlns:tx="http://www.springframework.org/schema/tx" 
    xmlns:util="http://www.springframework.org/schema/util" 
    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.xsd 
     http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd 
     http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee.xsd 
     http://www.springframework.org/schema/lang http://www.springframework.org/schema/lang/spring-lang.xsd 
     http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd 
     http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd 
     http://www.springframework.org/schema/mvc 
     http://www.springframework.org/schema/mvc/spring-mvc.xsd 
     "> 

    <!-- <mvc:resources mapping="/resources/**" location="/resources/mytheme/" 
     /> <mvc:annotation-driven /> --> 
    <context:annotation-config /> 
    <context:component-scan base-package="com" /> 
    <context:annotation-config /> 
    <mvc:annotation-driven /> 
    <!-- To prevent browser's back button on displaying secured resource after 
     logout --> 
    <bean 
     class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"> 
     <property name="cacheSeconds" value="0" /> 
    </bean> 

    <bean id="propertyConfigurer" 
     class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer" 
     p:location="/WEB-INF/jdbc.properties" /> 

    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" 
     destroy-method="close" p:driverClassName="${jdbc.driverClassName}" 
     p:url="${jdbc.databaseurl}" p:username="${jdbc.username}" /> 
    <bean id="sessionFactory" 
     class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> 
     <property name="dataSource" ref="dataSource" /> 
     <property name="packagesToScan"> 
      <list> 
       <value>com.musicstore.model</value> 
      </list> 
     </property> 
     <property name="configurationClass"> 
      <value>org.hibernate.cfg.AnnotationConfiguration</value> 
     </property> 
     <property name="hibernateProperties"> 
      <props> 
       <prop key="hibernate.dialect">${jdbc.dialect}</prop> 
       <prop key="hibernate.show_sql">true</prop> 
      </props> 
     </property> 
    </bean> 
    <!-- spring tiles --> 
    <bean id="viewResolver" 
     class="org.springframework.web.servlet.view.UrlBasedViewResolver"> 
     <property name="viewClass"> 
      <value> 
       org.springframework.web.servlet.view.tiles3.TilesView 
      </value> 
     </property> 
    </bean> 

    <bean id="tilesConfigurer" 
     class="org.springframework.web.servlet.view.tiles3.TilesConfigurer"> 
     <property name="definitions"> 
      <list> 
       <value>/WEB-INF/tile/general.xml</value> 
      </list> 
     </property> 
    </bean> 

    <!-- <bean id="viewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver"> 
     <property name="viewClass" value="org.springframework.web.servlet.view.JstlView" 
     /> <property name="prefix" value="/WEB-INF/jsp/" /> <property name="suffix" 
     value=".jsp" /> </bean> --> 
    <tx:annotation-driven /> 
    <bean id="transactionManager" 
     class="org.springframework.orm.hibernate3.HibernateTransactionManager"> 
     <property name="sessionFactory" ref="sessionFactory" /> 
    </bean> 

    <!-- Spring Internationalizations --> 

    <bean id="messageSource" 
     class="org.springframework.context.support.ReloadableResourceBundleMessageSource"> 
     <property name="basename" value="classpath:messages" /> 
     <property name="defaultEncoding" value="UTF-8" /> 
    </bean> 

    <bean id="localeResolver" 
     class="org.springframework.web.servlet.i18n.CookieLocaleResolver"> 
     <property name="defaultLocale" value="en" /> 
    </bean> 

    <bean id="localeChangeInterceptor" 
     class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor"> 
     <property name="paramName" value="language" /> 
    </bean> 
    <bean id="handlerMapping" 
     class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"> 
     <property name="interceptors"> 
      <ref bean="localeChangeInterceptor" /> 
     </property> 
    </bean> 

</beans 

Исключение:

СИЛЬНЫЕ: Исключение отправка контекст инициализации событие слушатель экземпляра класса org.springframework.web.context.ContextLoaderListener орга. springframework.beans.factory.BeanCreationException: Ошибка создание bean-компонента с именем 'viewResolver', определенным в ServletContext ресурс [/ WEB-INF/spring-s ervlet.xml]: значения свойств ошибки; Вложенное исключение - org.springframework.beans.PropertyBatchUpdateException; Вложенные PropertyAccessExceptions (1): PropertyAccessException 1: org.springframework.beans.MethodInvocationException: Свойство 'viewClass' выбрал исключение; вложенное исключение java.lang.IllegalArgumentException: Учитывая вид класса [org.springframework.web.servlet.view.tiles3.TilesView] не типа [org.springframework.web.servlet.view.AbstractUrlBasedView] в орг .springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues ​​(AbstractAutowireCapableBeanFactory.java:1396) на org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean (AbstractAutowireCapableBeanFactory.java:1118) на org.springframework.beans .factory.support.AbstractAutowireCapableBeanFactory.doCreateBean (AbstractAutowireCapableBeanFactory.java:517) по адресу org.springframework.beans.factory.support.Abstr actAutowireCapableBeanFactory.createBean (AbstractAutowireCapableBeanFactory.java:456) на org.springframework.beans.factory.support.AbstractBeanFactory $ 1.getObject (AbstractBeanFactory.java:294) в org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton (DefaultSingletonBeanRegistry.java:225) на org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean (AbstractBeanFactory.java:291) на org.springframework.beans.factory.support.AbstractBeanFactory.getBean (AbstractBeanFactory.java : 193) по адресу org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons (DefaultListableBeanFactory.java:585) на org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization (AbstractApplicationContext.java:913) на org.springframework.context.support.AbstractApplicationContext.refresh (AbstractApplicationContext.java:464) на org.springframework.web .context.ContextLoader.configureAndRefreshWebApplicationContext (ContextLoader.java:384) на org.springframework.web.context.ContextLoader.initWebApplicationContext (ContextLoader.java:283) на org.springframework.web.context.ContextLoaderListener.contextInitialized (ContextLoaderListener .java: 111) по адресу org.apache.catalina.core.StandardContext.listenerStart (StandardContext.java:4772) по адресу org.apache.catalina.core.StandardContext.startInternal (StandardContext.Java: 5196) на org.apache.catalina.util.LifecycleBase.start (LifecycleBase.java:150) в org.apache.catalina.core.ContainerBase $ StartChild.call (ContainerBase.java:1409) в org.apache.catalina.core.ContainerBase $ StartChild.call (ContainerBase.java:1399) at java.util.concurrent.FutureTask.run (Неизвестный источник) в java.util.concurrent.ThreadPoolExecutor.runWorker (Неизвестный источник) в java.util.concurrent.ThreadPoolExecutor $ Worker.run (Неизвестный источник) в java.lang.Thread.run (Неизвестный источник) Вызвано: org.springframework.beans.PropertyBatchUpdateException; Вложенные PropertyAccessExceptions (1): PropertyAccessException 1: org.springframework.beans.MethodInvocationException: Свойство 'viewClass' выбрал исключение; вложенное исключение java.lang.IllegalArgumentException: Учитывая вид класса [org.springframework.web.servlet.view.tiles3.TilesView] не типа [org.springframework.web.servlet.view.AbstractUrlBasedView] в орг .springframework.beans.AbstractPropertyAccessor.setPropertyValues ​​(AbstractPropertyAccessor.java:102) на org.springframework.beans.AbstractPropertyAccessor.setPropertyValues ​​(AbstractPropertyAccessor.java:58) на org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues (AbstractAutowireCapableBeanFactory.java:1393) ... 22 еще

Спасибо!

+0

Что версия ваших весенних модулей в вашем проекте? – erhun

ответ

1

Вы должны изменить свое определение бина viewResolver, как показано ниже

<bean id="viewResolver" 
     class="org.springframework.web.servlet.view.UrlBasedViewResolver"> 
     <property name="viewClass" value= "org.springframework.web.servlet.view.tiles3.TilesView" /> 
</bean> 
+0

Просто используйте соответствующий 'TilesViewResolver' вместо того, чтобы пытаться изобретать колесо с помощью низкоуровневого' UrlBasedViewResolver'. –

Смежные вопросы