0

In a Spring application I am getting NoSuchMethodError exception after upgrading from Spring 4 to Spring 5.

The new pom.xml dependencies:

<dependency>
    <groupId>org.thymeleaf</groupId>
    <artifactId>thymeleaf</artifactId>
    <version>3.1.1.RELEASE</version>
</dependency>
<dependency>
    <groupId>org.thymeleaf</groupId>
    <artifactId>thymeleaf-spring5</artifactId>
    <version>3.0.15.RELEASE</version>
</dependency>

The old pom.xml dependencies:

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

The exception is:

java.lang.NoSuchMethodError: org.thymeleaf.context.WebExpressionContext.<init>(Lorg/thymeleaf/IEngineConfiguration;Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;Ljavax/servlet/ServletContext;Ljava/util/Locale;Ljava/util/Map;)V
    at org.thymeleaf.spring5.view.ThymeleafView.renderFragment(ThymeleafView.java:259)
    at org.thymeleaf.spring5.view.ThymeleafView.render(ThymeleafView.java:190)
    at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1405)
    at org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1149)
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1088)
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:964)
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)
    at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:655)
    at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:764)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
Mark Rotteveel
  • 100,966
  • 191
  • 140
  • 197
tarif aljnidi
  • 21
  • 1
  • 3
  • You are probably using incompatible versions, because you specify different versions for your Thymeleaf dependencies. Try to use version 3.1.1.RELEASE **or** 3.0.15.RELEASE for **both** Thymeleaf dependencies. – Mark Rotteveel Mar 22 '23 at 13:31
  • yes you are right if I use 3.1.1.RELEASE for both Thymeleaf dependencies, it works fine . – tarif aljnidi Mar 22 '23 at 13:48

0 Answers0