Не удается разрешить символ: импортировать org.eclipse.jetty.server.Сервер;

#vaadin #maven-3 #jetty-8

#vaadin #maven-3 #jetty-8

Вопрос:

В моем проекте Vaadin Jetty Maven :

  <dependencies>
        <dependency>
            <groupId>com.vaadin</groupId>
            <artifactId>vaadin-core</artifactId>
        </dependency>

        <!-- Added to provide logging output as Flow uses -->
        <!-- the unbound SLF4J no-operation (NOP) logger implementation -->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-simple</artifactId>
        </dependency>

        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>3.1.0</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>commons-beanutils</groupId>
            <artifactId>commons-beanutils</artifactId>
            <version>1.9.2</version>
            <type>jar</type>
        </dependency>
        <dependency>
            <groupId>org.eclipse.jetty</groupId>
            <artifactId>jetty-webapp</artifactId>
            <version>8.1.7.v20120910</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.eclipse.jetty</groupId>
            <artifactId>jetty-server</artifactId>
            <version>8.1.7.v20120910</version>
        </dependency>
    </dependencies>
  

В моем Main.java:

 import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.server.handler.HandlerList;
import org.eclipse.jetty.server.handler.ResourceHandler;
import org.eclipse.jetty.util.resource.Resource;

public class Main {
    public static void main(String[] args) throws Exception {
        Server server = new Server();

        SelectChannelConnector connector = new SelectChannelConnector();
        connector.setPort(8080);
        server.addConnector(connector);

        ProtectionDomain domain = Main.class.getProtectionDomain();
        URL location = domain.getCodeSource().getLocation();
        WebAppContext webapp = new WebAppContext();
        webapp.setContextPath("/");
        webapp.setWar(location.toExternalForm());
        server.setHandler(webapp);

        server.start();
        server.join();

    }
}
  

Но я получаю ошибку компиляции в

 import org.eclipse.jetty.server.Server;

Cannot resolve symbol
  

Комментарии:

1. Вы пробовали удалить «<предоставленную область></scope>» из вашей зависимости jetty-webapp?

Ответ №1:

org.eclipse.jetty.server.Server включено в

 <dependency>
            <groupId>org.eclipse.jetty</groupId>
            <artifactId>jetty-server</artifactId>
            <version>8.1.7.v20120910</version>
</dependency>
  

Я создал небольшой проект Vaadin8 с

 mvn -B archetype:generate 
        -DarchetypeGroupId=com.vaadin 
        -DarchetypeArtifactId=vaadin-archetype-application 
        -DarchetypeVersion=8.7.1 
        -DgroupId=org.test 
        -DartifactId=vaadin-app 
        -Dversion=1.0-SNAPSHOT
  

и добавлены зависимости, которые вы упомянули в своем вопросе. Затем я добавил ваш основной класс.

Я могу выполнить чистую установку mvn без проблем и могу скомпилировать ее в IntelliJ.

Пожалуйста, убедитесь, что maven правильно загрузил все зависимости.