Причина: java.lang.ClassNotFoundException: com.vaadin.server.VaadinServlet
Класс, который явно не найден в пути к классам (VaadinServlet), содержится в vaadin-сервера 7.7.16.jar.При запуске приложения вы должны убедиться, что эта библиотека находится в вашем пути к классам.
Я создал минимальный пример проекта (maven) на основе maven archetype vaadin-archetype-aaplication с помощью команды:
mvn archetype:generate \
-DarchetypeGroupId=com.vaadin \
-DarchetypeArtifactId=vaadin-archetype-application \
-DarchetypeVersion=7.7.16 \
-DgroupId=com.pany \
-DartifactId=project-name \
-Dversion=0.1 \
-Dpackaging=war
и добавил ваш код в UI.init (VaadinRequest vaadinRequest) (+ я добавил зависимость для jetty-webapp, чтобы разрешить импорт).
Если у меня есть следующая зависимость в моем pom.xml
<dependency>
<groupId>com.vaadin</groupId>
<artifactId>vaadin-server</artifactId>
</dependency>
(которая по умолчанию в этом архетипе)
Я могу запустить / запустить приложение безлюбые проблемы.
Если я знаю, принудительно, что зависимость vaadin-server не добавляется в путь к классу (пометив его как предоставленный)
<dependency>
<groupId>com.vaadin</groupId>
<artifactId>vaadin-server</artifactId>
<scope>provided</scope>
</dependency>
Затем при попытке запустить приложение, онозавершается с:
[ОШИБКА] Не удалось выполнить цель org.eclipse.jetty: jetty-maven-plugin: 9.3.9.v20160517: выполнить (default-cli) для проекта имя проекта: выполнениеdefault-cli цели org.eclipse.jetty: jetty-maven-plugin: 9.3.9.v20160517: выполнить не удалось: при выполнении org.eclipse.jetty: jetty-maven-plugin: 9.3.9.v20160517 отсутствует требуемый класс.: run: com / vaadin / server / VaadinServlet
, поскольку указанный класс больше не находится на пути к классам.