在thymeleaf无法自动装配TemplateEngine?

时间:2017-09-05 14:26:58

标签: java spring jetty thymeleaf html-email

这是我使用java spring和thymeleaf模板引擎发送html电子邮件的代码。

    [WARNING] Failed startup of context o.e.j.m.p.JettyWebAppContext@23321be7{/adsops,file:///E:/Projects/ADpost/ops/dev/src/main/webapp/,STARTING}{file:///E:/Projects/ADpost/ops/dev/src/main/webapp/}
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'securityConfiguration': Unsatisfied dependency expressed through field 'userDetailsService'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'applicationUserServiceImpl': Unsatisfied dependency expressed through field 'emailService'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'emailServiceImpl': Unsatisfied dependency expressed through field 'templateEngine'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'templateEngine' defined in com.vlclabs.adsops.configuration.WebApplicationConfiguration: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.thymeleaf.spring4.SpringTemplateEngine]: Factory method 'templateEngine' threw exception; nested exception is java.lang.NoClassDefFoundError: org/thymeleaf/dialect/IExpressionEnhancingDialect

尝试使用Jetty和Intellij创建它时,我收到以下错误。

  <dependency>
        <groupId>org.thymeleaf</groupId>
        <artifactId>thymeleaf-spring4</artifactId>
        <version>${thymeleaf.version}</version>
        <scope>compile</scope>
    </dependency>

    <dependency>
        <groupId>org.thymeleaf.extras</groupId>
        <artifactId>thymeleaf-extras-conditionalcomments</artifactId>
        <version>${thymeleaf-extras-conditionalcomments.version}</version>
    </dependency>

    <dependency>
        <groupId>org.thymeleaf.extras</groupId>
        <artifactId>thymeleaf-extras-java8time</artifactId>
        <version>${thymeleaf-extras-java8time.version}</version>
    </dependency>

    <dependency>
        <groupId>org.thymeleaf.extras</groupId>
        <artifactId>thymeleaf-extras-springsecurity4</artifactId>
        <version>${thymeleaf-extras-springsecurity4.version}</version>
    </dependency>

这些是依赖项

  <system.webServer> 
    <rewrite>
      <rules>
        <rule name="redirect" enabled="true">
          <match url="(.*)" />
            <conditions>
              <add input="{HTTP_HOST}" negate="true" pattern="^www.domain1.com$" />
            </conditions>
          <action type="Redirect" url="http://www.domain2.com/{R:0}" appendQueryString="true" redirectType="Permanent" />
        </rule>
      </rules>
    </rewrite>
  <system.webServer> 

在尝试浏览错误消息时,我理解错误可能是由于我在添加模板引擎时所犯的错误。但是我几天都无法解决这个问题。请帮忙

1 个答案:

答案 0 :(得分:1)

问题可能是您混合了不兼容的版本。您可以通过运行来检查您的版本:

mvn dependency:tree

(如果您有Eclipse,则可以打开pom文件并切换到“Dependency Hierarchy”选项卡以执行相同的操作。)

特别检查这些:

  • org.thymeleaf:thymeleaf-spring4:罐
  • org.thymeleaf:thymeleaf:罐

这两个应该具有相同版本。如果他们不这样做,请调整您的依赖关系。