@n199a
Java

Какова причина появления ошибки An attempt was made to call a method that does not exist?

Пытаюсь запустить Spring Boot приложение и появляется ошибка:

Description:
An attempt was made to call a method that does not exist. The attempt was made from the following location:
org.springframework.context.expression.StandardBeanExpressionResolver.evaluate(StandardBeanExpressionResolver.java:160)

The following method did not exist:
org.springframework.expression.spel.support.StandardTypeConverter.<init>(Ljava/util/function/Supplier;)V

The method's class, org.springframework.expression.spel.support.StandardTypeConverter, is available from the following locations:
jar:file:/C:/Users/n199a/.m2/repository/org/springframework/spring-expression/5.3.10/spring-expression-5.3.10.jar!/org/springframework/expression/spel/support/StandardTypeConverter.class

The class hierarchy was loaded from the following locations:
org.springframework.expression.spel.support.StandardTypeConverter: file:/C:/Users/n199a/.m2/repository/org/springframework/spring-expression/5.3.10/spring-expression-5.3.10.jar

Action:
Correct the classpath of your application so that it contains a single, compatible version of org.springframework.expression.spel.support.StandardTypeConverter

Process finished with exit code 1


Единственно на что падает подозрение, так это на мой кастомный конвертер Enum to String:
EsmConfiguration.java

@Profile("dev")
@Configuration
@EnableTransactionManagement
public class EsmConfiguration implements WebMvcConfigurer {
    
    @Override
    public void addFormatters(FormatterRegistry registry) {
        registry.addConverter(new StringToColumnNameConverter());
        registry.addConverter(new StringToSqlSortOperatorConverter());
        registry.addConverter(new StringToRequestParameterConverter());
    }
}


Вот так выглядит один из конвертеров внутри (ничего необычного):
public class StringToColumnNameConverter implements Converter<String, ColumnName> {
    @Override
    public ColumnName convert(@NotBlank String source) {
        return ColumnName.valueOf(source.toUpperCase());
    }
}

  • Вопрос задан
  • 1475 просмотров
Решения вопроса 1
@n199a Автор вопроса
Java
Нашел, в `pom.xml` были несоответствия в версиях подключаемых библиотек. У меня было:
<dependency> <!-- For annotations -->
                <groupId>org.springframework</groupId>
                <artifactId>spring-context</artifactId>
                <version>5.3.12</version>
</dependency>


А надо:
<dependency> <!-- For annotations -->
                <groupId>org.springframework</groupId>
                <artifactId>spring-context</artifactId>
                <version>5.3.10</version>
</dependency>
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы