Vaadin и Spring Boot не играют красиво - PullRequest
0 голосов
/ 26 июня 2019

Я бэкэнд-разработчик Spring Boot, который пытается облегчить себе путь к Vaadin. Я создал простой Spring Boot & Vaadin проект и загрузил его на GitHub. Из того, что я могу сказать, я, возможно, обнаружил ошибку в библиотеке Vaadin Spring Boot Starter. В этом примере GitHub я почти уверен, что я установил правильные версии правильных зависимостей для запуска и запуска простого начального приложения, однако при запуске приложения я получаю следующее:

java.lang.reflect.MalformedParameterizedTypeException: null
    at sun.reflect.generics.reflectiveObjects.ParameterizedTypeImpl.validateConstructorArguments(ParameterizedTypeImpl.java:58)
    at sun.reflect.generics.reflectiveObjects.ParameterizedTypeImpl.<init>(ParameterizedTypeImpl.java:51)
    at sun.reflect.generics.reflectiveObjects.ParameterizedTypeImpl.make(ParameterizedTypeImpl.java:92)
    at sun.reflect.generics.factory.CoreReflectionFactory.makeParameterizedType(CoreReflectionFactory.java:105)
    at sun.reflect.generics.visitor.Reifier.visitClassTypeSignature(Reifier.java:140)
    at sun.reflect.generics.tree.ClassTypeSignature.accept(ClassTypeSignature.java:49)
    at sun.reflect.generics.repository.MethodRepository.getReturnType(MethodRepository.java:68)
    at java.lang.reflect.Method.getGenericReturnType(Method.java:255)
    at org.springframework.core.MethodParameter.getGenericParameterType(MethodParameter.java:382)
    at org.springframework.core.SerializableTypeWrapper$MethodParameterTypeProvider.getType(SerializableTypeWrapper.java:337)
    at org.springframework.core.SerializableTypeWrapper.forTypeProvider(SerializableTypeWrapper.java:149)
    at org.springframework.core.ResolvableType.forType(ResolvableType.java:1346)
    at org.springframework.core.ResolvableType.forMethodParameter(ResolvableType.java:1249)
    at org.springframework.core.ResolvableType.forMethodParameter(ResolvableType.java:1217)
    at org.springframework.core.ResolvableType.forMethodReturnType(ResolvableType.java:1160)

Полная трассировка стека может быть найдена, перейдя в этот проект GitHub, клонировав его и выполнив команды для упаковки и запуска.

Здесь важно отметить, что хотя классы, специфичные для Vaadin, не отображаются в полной трассировке стека, если вы закомментируете зависимость com.vaadin:vaadin-spring-boot-starter:13.0.8 в файле сборки, а затем закомментируете код API Vaadin в классы EmployeeEditor и MainView (чтобы он снова компилировался), проблема исчезает и приложение запускается просто отлично!

Так что в этом Vaadin Spring Boot Starter явно есть что-то, что не нравится базовой платформе Spring Boot. Есть идеи, что это может быть?

1 Ответ

2 голосов
/ 26 июня 2019

FWIW это было исправлено путем изменения buildscript.dependencies на:

dependencies {
    classpath("org.springframework.boot:spring-boot-gradle-plugin:2.1.0.RELEASE")
}

и затем обновление зависимостей компиляции до:

,'com.vaadin:vaadin-spring-boot-starter:13.0.8'
,'org.springframework.boot:spring-boot-starter-actuator:2.1.0.RELEASE'
,'org.springframework.boot:spring-boot-starter-data-jpa:2.1.0.RELEASE'
,'com.h2database:h2:1.4.197'
...