пользовательская регистрация диалекта тимелеафа, вызывающая исключение

в applicationContext.xml

 <bean id="templateEngine"
      class="org.thymeleaf.spring3.SpringTemplateEngine">
    <property name="templateResolver" ref="templateResolver" />
    <property name="additionalDialects">
        <set>
            <bean class="org.test.custom.CustomDialact" />
        </set>
    </property>
</bean>

Трассировки стека:

Caused by: org.springframework.beans.NotWritablePropertyException: Invalid property 'additionalDialects' of bean class [org.thymeleaf.spring3.SpringTemplateEngine]: Bean property 'additionalDialects' is not writable or has an invalid setter method. Does the parameter type of the setter match the return type of the getter?
at org.springframework.beans.BeanWrapperImpl.setPropertyValue(BeanWrapperImpl.java:1042)
at org.springframework.beans.BeanWrapperImpl.setPropertyValue(BeanWrapperImpl.java:902)
at org.springframework.beans.AbstractPropertyAccessor.setPropertyValues(AbstractPropertyAccessor.java:75)
at org.springframework.beans.AbstractPropertyAccessor.setPropertyValues(AbstractPropertyAccessor.java:57)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1424)
... 50 more

person Pankaj Sharma    schedule 19.12.2013    source источник


Ответы (1)


я не знаю, но это было исправлено после перезагрузки машины. но в то же время я нахожу другое решение, расширяя пользовательский класс с помощью HashSet, а в конструкторе добавляя в него собственный диалект и объявляя его в xml. предоставьте ему ссылку на additionalDialects . вот и все. он начнет работать. он думает, что это проблема, связанная с дженериками, поскольку Spring иногда предоставляет пустой тип, например HashSet<V> .

person Pankaj Sharma    schedule 22.12.2013