2016-08-09 2 views
0

Привет, я использую весну 4 с тимелеафом 3 для моего проекта. Я изменил все в соответствии с их документом. Когда я запустить приложение на wildfly 10, он показывает некоторые ошибки ..NoSuchMethodError: org.thymeleaf.standard.StandardDialect with spring 4 and thymeleaf 3

21:35:15,447 WARN [org.springframework.web.context.support.XmlWebApplicationContext] (ServerService Thread Pool -- 9) Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'templateEngine' defined in class path resource [spring/ViewConfig.xml]: Instantiation of bean failed; nested exception is java.lang.NoSuchMethodError: org.thymeleaf.standard.StandardDialect.<init>(Ljava/lang/String;Ljava/lang/String;I)V 
21:35:15,458 ERROR [org.springframework.web.servlet.DispatcherServlet] (ServerService Thread Pool -- 9) Context initialization failed: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'templateEngine' defined in class path resource [spring/ViewConfig.xml]: Instantiation of bean failed; nested exception is java.lang.NoSuchMethodError: org.thymeleaf.standard.StandardDialect.<init>(Ljava/lang/String;Ljava/lang/String;I)V 
     at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:1105) 
     at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1050) 
     at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:510) 
     at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482) 
     at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306) 

Themeleaf3 зависимость

<dependency> 
     <groupId>org.thymeleaf</groupId> 
     <artifactId>thymeleaf</artifactId> 
     <version>3.0.1.RELEASE</version> 
    </dependency> 
    <dependency> 
     <groupId>org.thymeleaf</groupId> 
     <artifactId>thymeleaf-spring4</artifactId> 
     <version>3.0.1.RELEASE</version> 
    </dependency> 

    <dependency> 
     <groupId>nz.net.ultraq.web.thymeleaf</groupId> 
     <artifactId>thymeleaf-layout-dialect</artifactId> 
     <version>1.0.6</version> 
    </dependency> 

шаблона конфигурации Резольвер

<bean id="templateResolver" 
     class="org.thymeleaf.templateresolver.ServletContextTemplateResolver"> 
     <property name="prefix" value="/WEB-INF/views/" /> 
     <property name="suffix" value=".html" /> 
     <property name="templateMode" value="HTML5" /> 
    </bean> 

    <bean id="templateEngine" class="org.thymeleaf.spring4.SpringTemplateEngine"> 
     <property name="templateResolver" ref="templateResolver" /> 
     <property name="dialects"> 
      <set> 
       <bean class="org.thymeleaf.standard.dialect.StandardDialect" /> 
       <bean class="nz.net.ultraq.web.thymeleaf.LayoutDialect" /> 
      </set> 
     </property> 
    </bean> 

    <bean class="org.thymeleaf.spring4.view.ThymeleafViewResolver"> 
     <property name="templateEngine" ref="templateEngine" /> 
    </bean> 

ответ

2

Я не знаю, если вы решены это, но ваш пост здесь был единственным результатом, который я получил по всему Интернету для этой проблемы.

Мне потребовалось несколько часов, чтобы наконец найти причину для меня. По какой-то причине у меня был банкомат Thymeleaf 2.14-RELEASE в папке/lib моего проекта. Моя IDE (Intellij 2016.2.5) использовала эту версию, а не версию 3.0.5-RELEASE, которая была у maven. Внутри IDE не было очевидного намека на то, что это произошло.

Основная проблема: StandardDialect от 2.14 не имеет конструкторов (отсюда и странная ошибка), но тот, что в 3.0.5.

Я ломал себе голову, потому что у меня не было логической причины для этой ошибки, и я надеюсь, что это спасет любую бедную душу.

0

У меня такие же проблемы, я просто удалил все дополнительные thymeleaf зависимостей и просто добавил это в pom.xml и работает для меня.

<dependency> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-starter-thymeleaf</artifactId> 
</dependency> 
Смежные вопросы