Vaadin 14 '在重新打包后无法导航到“'
Posted
技术标签:
【中文标题】Vaadin 14 \'在重新打包后无法导航到“\'【英文标题】:Vaadin 14 'could not navigate to " ' after being repackedVaadin 14 '在重新打包后无法导航到“' 【发布时间】:2020-02-14 00:11:29 【问题描述】:我的项目有问题。也许你能帮我一点忙。 我目前正在尝试编写一个小 webapp。我为此使用 Spring Boot + Vaadin 14。 当我在 Eclipse 中测试应用程序时,一切都按设计工作。但是在我用 Maven 编译我的项目并启动它之后,我收到一条错误消息,我的应用程序找不到任何路由。
这是错误信息:
Could not navigate to ''
Reason: Couldn't find route for ''
Available routes:
This detailed message is only shown when running in development mode.
这是我的 pom:
?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.9.RELEASE</version>
<relativePath /> <!-- lookup parent from repository -->
</parent>
<groupId>(REMOVED FOR PRIVACY REASONS)</groupId>
<artifactId>(REMOVED FOR PRIVACY REASONS)</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>mobileissuecreator</name>
<packaging>jar</packaging>
<properties>
<java.version>1.8</java.version>
<vaadin.version>14.0.9</vaadin.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.vaadin</groupId>
<artifactId>vaadin-spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.vaadin</groupId>
<artifactId>vaadin-spring-boot-starter</artifactId>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.vaadin</groupId>
<artifactId>vaadin-bom</artifactId>
<version>$vaadin.version</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
我的应用程序入门类:
package com.cen.spin.mobileissuecreator.springcontroller;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.context.annotation.SessionScope;
import com.vaadin.flow.spring.annotation.EnableVaadin;
@Configuration
@SpringBootApplication
@EnableVaadin("(REMOVED FOR PRIVACY REASONS)")
public class (REMOVED FOR PRIVACY REASONS) extends SpringBootServletInitializer
public static void main(String[] args)
SpringApplication.run((REMOVED FOR PRIVACY REASONS).class, args);
@Bean
@SessionScope
public MICService micService(EnoviaAuthService enoviaAuthService, EnoviaAuthProperties enoviaAuthProperties)
return new MICService(enoviaAuthService, enoviaAuthProperties);
@Bean
@SessionScope
public EnoviaAuthService enoviaAuthService(EnoviaAuthProperties enoviaAuthProperties) throws Exception
return new EnoviaAuthService(enoviaAuthProperties);
@Bean
@SessionScope
public EnoviaAuthProperties enoviaAuthProperties()
return new EnoviaAuthProperties();
@Bean
@SessionScope
public EnoviaRoleSelectorService enoviaRoleSelectorService(EnoviaAuthService enoviaAuthService)
return new EnoviaRoleSelectorService(enoviaAuthService);
@Bean
@SessionScope
public EnoviaContextCheckService enoviaContextCheckService(EnoviaAuthService enoviaAuthService)
return new EnoviaContextCheckService(enoviaAuthService);
如果你能帮助我,那就太好了。
谢谢!
【问题讨论】:
你有@Route
annotation的视图吗?
是的。每个 View 都有一个 @Route 注解。同时,我找到了解决方法。如果我将所有类放在同一个包中,它会在编译后工作。难道不能在不同的包中拥有类吗?
【参考方案1】:
问题是因为你的配置类默认只扫描它定义的包及其所有子包。
因此,为了解决您的问题,您应该执行以下操作之一:
定义要扫描的附加包,默认情况下尚未扫描。您可以在带有scanBasePackages
属性的@SpringBootApplication
注释中执行此操作。
Similar question with multiple answers
【讨论】:
以上是关于Vaadin 14 '在重新打包后无法导航到“'的主要内容,如果未能解决你的问题,请参考以下文章