我为 tomcat 7 编写了一个 vaadin 项目,它可以在本地运行。将其迁移到 tomcat 8 后,我无法再启动该页面,因为我收到消息:
HTTP Status 500 - com.vaadin.server.ServiceException: java.lang.IllegalStateException: Push is not available. See previous log messages for more information.
第一个异常显示以下行:
java.lang.IllegalArgumentException: Unable to createclass org.atmosphere.container.JettyServlet30AsyncSupportWithWebSocket
我在我的 pom 文件中为两个 tomcat 版本使用了以下依赖项
<dependencies>
<dependency>
<groupId>org.java-websocket</groupId>
<artifactId>Java-WebSocket</artifactId>
<version>1.3.0</version>
</dependency>
<dependency>
<groupId>com.vaadin</groupId>
<artifactId>vaadin-push</artifactId>
<version>7.3.10</version>
</dependency>
<dependency>
<groupId>com.vaadin</groupId>
<artifactId>vaadin-client</artifactId>
<version>7.3.10</version>
<scope>provided</scope>
</dependency>
</dependencies>
当我将现有项目的 tomcat 版本从 7 更改为 8 时,或者当我在 intellij 中创建新项目并将旧的 java 类和资源复制到新创建的项目时,这都没有用。
最佳答案
在我删除了 WEB-INF/lib 文件夹中所有以“jetty”开头的 jar 之后,问题就解决了。
关于tomcat - vaadin push 适用于 tomcat 7 但不适用于 tomcat 8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28432849/