Я работаю над обновлением приложения Vaadin 8 до Vaadin 14. Мне пришлось вручную определить расширение VaadinServlet
, а не использовать автоматическую регистрацию сервлета Vaadin 14, поскольку мне нужно, чтобы оно было сопоставлено с определенным шаблоном URL. Я использую web.xml
для настройки сервлета так же, как он был успешно настроен для Vaadin 8.
Когда мой сервлет инициализируется, я получаю ServletException
, вызванный NullPointerException
кодом Ваадина. Я посмотрел на исходный код и увидел, что исключение возникает, когда Vaadin пытается получить экземпляр Lookup
из ServletContext
сервлета и вместо этого возвращает null. Я обнаружил, что экземпляр Lookup
должен быть добавлен в контекст в LookupServletContainerInitializer
, но похоже, что в моем случае этого не происходит.
Кто-нибудь знает, что может вызвать эту проблему? Трассировка стека NullPointerException
приведена ниже.
Caused by: java.lang.NullPointerException at com.vaadin.flow.server.DeploymentConfigurationFactory.getTokenFileFromClassloader(DeploymentConfigurationFactory.java:341) at com.vaadin.flow.server.DeploymentConfigurationFactory.getTokenFileContents(DeploymentConfigurationFactory.java:311) at com.vaadin.flow.server.DeploymentConfigurationFactory.readBuildInfo(DeploymentConfigurationFactory.java:181) at com.vaadin.flow.server.DeploymentConfigurationFactory.createInitParameters(DeploymentConfigurationFactory.java:174) at com.vaadin.flow.server.VaadinServlet.createDeploymentConfiguration(VaadinServlet.java:152) at com.vaadin.flow.server.VaadinServlet.createServletService(VaadinServlet.java:190) at com.vaadin.flow.server.VaadinServlet.init(VaadinServlet.java:77) at org.eclipse.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:602) ... 28 more