Search code examples
routesvaadinvaadin22

vaadin 22 not finding the default route


I have a default route for my vaadin web app. I'm running tomcat 8.5 without springboot.

package dev.mine.ui.user.views;


import com.vaadin.flow.router.BeforeEnterEvent;
import com.vaadin.flow.router.BeforeEnterObserver;
import com.vaadin.flow.router.Route;


@Route(value = "")
public class DefaultView implements BeforeEnterObserver
{
    public DefaultView()
    {
    }

    @Override
    public void beforeEnter(BeforeEnterEvent event)
    {
        event.forwardTo(SearchView.class);
    }
}

I don't have a web.xml but rather use the @WebServlet annotation

package dev.mine.servlets;

import javax.servlet.annotation.WebServlet;

import com.vaadin.flow.server.VaadinServlet;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebInitParam;

@WebServlet(urlPatterns =
{ "/*", "/VAADIN/*" }, name = "Mine", asyncSupported = true, initParams =
{
        @WebInitParam(name = "org.atmosphere.cpr.AtmosphereInterceptor", value = "dev.onepub.servlets.AtmosphereFilter"),
        @WebInitParam(name = "closeIdleSessions", value = "true"),

        /// changed this when we release.
        @WebInitParam(name = "productionMode", value = "false")

})
public class Servlet extends VaadinServlet
{
    @Override
    protected void servletInitialized() throws ServletException
    {
        super.servletInitialized();
    }
}

When I try to access:

http://localhost:8080/context/

I'm expecting to be taken to the default view. Instead I get the classic vaadin no route found page.

Could not navigate to ''
Available routes:

invite
....

This detailed message is only shown when running in development mode.

So what have I done wrong?


Solution

  • Your DefaultView doesn't extend a component like Div, VerticalLayout and so on. Without a component a Route can't be shown.