Vaadin 和 Spring 启动效果不佳
Vaadin and Spring Boot not playing nicely
我是一名 Spring 引导后端开发人员,他正试图轻松进入 Vaadin。我创建了一个简单的 Spring Boot & Vaadin project 并将其上传到 GitHub。据我所知,我可能发现了 Vaadin Spring Boot Starter 库中的错误。在那个 GitHub 示例中,我很确定我已经引入了正确依赖项的正确版本以启动一个简单的入门应用程序并 运行ning,但是在应用程序启动时我得到了这个:
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
依赖项,并且然后注释掉 EmployeeEditor
和 MainView
类 中的 Vaadin API 代码(以便再次编译),问题消失,应用程序启动正常!
所以 Vaadin Spring Boot Starter 中显然有核心 Spring Boot 框架不喜欢的东西。 知道它可能是什么吗?
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'
我是一名 Spring 引导后端开发人员,他正试图轻松进入 Vaadin。我创建了一个简单的 Spring Boot & Vaadin project 并将其上传到 GitHub。据我所知,我可能发现了 Vaadin Spring Boot Starter 库中的错误。在那个 GitHub 示例中,我很确定我已经引入了正确依赖项的正确版本以启动一个简单的入门应用程序并 运行ning,但是在应用程序启动时我得到了这个:
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
依赖项,并且然后注释掉 EmployeeEditor
和 MainView
类 中的 Vaadin API 代码(以便再次编译),问题消失,应用程序启动正常!
所以 Vaadin Spring Boot Starter 中显然有核心 Spring Boot 框架不喜欢的东西。 知道它可能是什么吗?
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'