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
クラスパスに異なるバージョンのライブラリが混在しているように見えます。 –