2017-10-17 14 views
0

Thymeleaf 2.1.3から3.0.8に移行したいと考えています。あなたがresoucresの最新バージョンで下記のように見えるように、私はpom.xmlファイルを更新しました。 warファイルをJbossにデプロイしようとすると、BeanCreationExceptionが発生します。 Stacktraceの詳細は以下の通りです。2から3へのThymeleafの移行は、thymeleaf-extras-conditionalcommentsを使用して例外を受け取ります。

例外は、ConditionalCommentsDialectのスーパークラスコンストラクタの属性がないために発生したと思います。 ConditionalCommentsDialectはorg.thymeleaf.dialect.AbstractDialectを拡張しており、コンストラクターはThymeleaf 3バージョンで変更されています。 ConditionalCommentsDialectはThymeleaf 3と互換性がないようです。私の想定は正しいのですか?任意のアイデアをどのようにこれを解決するには?前もって感謝します。

のpom.xml

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

    <dependency> 
     <groupId>org.thymeleaf</groupId> 
     <artifactId>thymeleaf-testing</artifactId> 
     <version>3.0.3.RELEASE</version> 
     <scope>test</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.attoparser</groupId> 
     <artifactId>attoparser</artifactId> 
     <version>2.0.4.RELEASE</version> 
    </dependency> 

    <dependency> 
     <groupId>org.thymeleaf.extras</groupId> 
     <artifactId>thymeleaf-extras-conditionalcomments</artifactId> 
     <version>2.1.2.RELEASE</version> 
    </dependency> 

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

Spring構成ファイル

<util:set id="extraDialects"> 
    <bean class="nz.net.ultraq.thymeleaf.LayoutDialect" /> 
    <bean class="org.thymeleaf.extras.conditionalcomments.dialect.ConditionalCommentsDialect" /> 
</util:set> 

<bean id="templateResolver" class="org.thymeleaf.spring4.templateresolver.SpringResourceTemplateResolver" 
     p:prefix="classpath:/views/" 
     p:suffix=".html" 
     p:templateMode="HTML5" 
     p:characterEncoding="UTF-8" /> 

<bean id="templateEngine" class="org.thymeleaf.spring4.SpringTemplateEngine" 
     p:templateResolver-ref="templateResolver" 
     p:extraDialects-ref="extraDialects" 
     /> 

<bean id="viewResolver" class="org.thymeleaf.spring4.view.ThymeleafViewResolver" 
     p:templateEngine-ref="templateEngine" 
     p:characterEncoding="UTF-8" /> 

例外

Error creating bean with name 'extraDialects': Cannot create inner bean org.thymeleaf.extras.conditionalcomments.dialect.ConditionalCommentsDialect#503d1586' of type [org.thymeleaf.extras.conditionalcomments.dialect.ConditionalCommentsDialect] while setting bean property 'sourceSet' with key [1]; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.thymeleaf.extras.conditionalcomments.dialect.ConditionalCommentsDialect#503d1586' defined in class path resource [spring-webmvc.xml]: Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.thymeleaf.extras.conditionalcomments.dialect.ConditionalCommentsDialect]: Constructor threw exception; nested exception is java.lang.NoSuchMethodError: org.thymeleaf.dialect.AbstractDialect: method <init>()V not found 
+0

クラスパスに異なるバージョンのライブラリが混在しているように見えます。 –

答えて

1

条件付きコメントは、現在(バージョン3以降)Thymeleafコアの一部として提供されます。その依存関係を削除するだけで済みます。

関連する問題