gpt4 book ai didi

嵌入 tomcat8 的 VAADIN 推送不可用

转载 作者:行者123 更新时间:2023-12-04 15:56:15 29 4
gpt4 key购买 nike

我创建了一个简单的测试应用程序:

import java.util.logging.Logger;

import org.apache.catalina.Context;
import org.apache.catalina.LifecycleException;
import org.apache.catalina.startup.Tomcat;

public class Main {
private final static Logger LOGGER = Logger.getLogger(Main.class.getName());
private final static String mWorkingDir = System.getProperty("java.io.tmpdir");
private static Tomcat tomcat = null;

public static void main(String[] args) {

tomcat = new Tomcat();
tomcat.setPort(8080);
tomcat.setBaseDir(mWorkingDir);
tomcat.getHost().setAppBase(mWorkingDir);
tomcat.getHost().setAutoDeploy(true);
tomcat.getHost().setDeployOnStartup(true);

try {
tomcat.start();
} catch (LifecycleException e) {
LOGGER.severe("Tomcat could not be started.");
e.printStackTrace();
}
LOGGER.info("Tomcat started on " + tomcat.getHost());

// Alternatively, you can specify a WAR file as last parameter in the following call e.g. "C:\\Users\\admin\\Desktop\\app.war"
Context appContext = Main.getTomcat().addWebapp(Main.getTomcat().getHost(), "/app", System.getProperty("user.dir")+"\\Whys.war");
LOGGER.info("Deployed " + appContext.getBaseName() + " as " + appContext.getBaseName());

tomcat.getServer().await();
}

public static Tomcat getTomcat(){
return tomcat;
}
}

当我从 Eclipse 启动它时,一切正常,但是当我将它导出到一个可运行的 jar 并运行它时,我收到此错误:

HTTP Status 500 - com.vaadin.server.ServiceException: java.lang.IllegalStateException: Push is not available. See previous log messages for more information.



这是整个调用堆栈:
GRAVE: Failed to initialize Atmosphere Framework
java.lang.IllegalArgumentException: Unable to createclass org.atmosphere.container.JSR356AsyncSupport
at org.atmosphere.cpr.DefaultAsyncSupportResolver.newCometSupport(DefaultAsyncSupportResolver.java:229)
at org.atmosphere.cpr.DefaultAsyncSupportResolver.resolveWebSocket(DefaultAsyncSupportResolver.java:288)
at org.atmosphere.cpr.DefaultAsyncSupportResolver.resolve(DefaultAsyncSupportResolver.java:274)
at org.atmosphere.cpr.AtmosphereFramework.autoDetectContainer(AtmosphereFramework.java:1591)
at org.atmosphere.cpr.AtmosphereFramework.init(AtmosphereFramework.java:717)
at org.atmosphere.cpr.AtmosphereFramework.init(AtmosphereFramework.java:614)
at com.vaadin.server.communication.PushRequestHandler.<init>(PushRequestHandler.java:121)
at com.vaadin.server.VaadinServletService.createRequestHandlers(VaadinServletService.java:82)
at com.vaadin.server.VaadinService.init(VaadinService.java:186)
at com.vaadin.server.VaadinServlet.createServletService(VaadinServlet.java:258)
at com.vaadin.server.VaadinServlet.init(VaadinServlet.java:164)
at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1231)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1144)
at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:817)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:135)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:142)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:518)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1091)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:668)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1527)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1484)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at org.atmosphere.cpr.DefaultAsyncSupportResolver.newCometSupport(DefaultAsyncSupportResolver.java:225)
... 28 more
Caused by: java.lang.IllegalStateException: ServerContainer is null
at org.atmosphere.container.JSR356AsyncSupport.<init>(JSR356AsyncSupport.java:43)
... 33 more

ao¹t 12, 2015 8:32:04 PM com.vaadin.server.VaadinServletService createRequestHandlers
AVERTISSEMENT: Error initializing Atmosphere. Push will not work.
com.vaadin.server.ServiceException: Atmosphere init failed
at com.vaadin.server.communication.PushRequestHandler.<init>(PushRequestHandler.java:129)
at com.vaadin.server.VaadinServletService.createRequestHandlers(VaadinServletService.java:82)
at com.vaadin.server.VaadinService.init(VaadinService.java:186)
at com.vaadin.server.VaadinServlet.createServletService(VaadinServlet.java:258)
at com.vaadin.server.VaadinServlet.init(VaadinServlet.java:164)
at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1231)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1144)
at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:817)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:135)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:142)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:518)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1091)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:668)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1527)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1484)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Unknown Source)
Caused by: javax.servlet.ServletException: java.lang.IllegalArgumentException: Unable to createclass org.atmosphere.container.JSR356AsyncSupport
at org.atmosphere.cpr.AtmosphereFramework.init(AtmosphereFramework.java:741)
at org.atmosphere.cpr.AtmosphereFramework.init(AtmosphereFramework.java:614)
at com.vaadin.server.communication.PushRequestHandler.<init>(PushRequestHandler.java:121)
... 22 more
Caused by: java.lang.IllegalArgumentException: Unable to createclass org.atmosphere.container.JSR356AsyncSupport
at org.atmosphere.cpr.DefaultAsyncSupportResolver.newCometSupport(DefaultAsyncSupportResolver.java:229)
at org.atmosphere.cpr.DefaultAsyncSupportResolver.resolveWebSocket(DefaultAsyncSupportResolver.java:288)
at org.atmosphere.cpr.DefaultAsyncSupportResolver.resolve(DefaultAsyncSupportResolver.java:274)
at org.atmosphere.cpr.AtmosphereFramework.autoDetectContainer(AtmosphereFramework.java:1591)
at org.atmosphere.cpr.AtmosphereFramework.init(AtmosphereFramework.java:717)
... 24 more
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at org.atmosphere.cpr.DefaultAsyncSupportResolver.newCometSupport(DefaultAsyncSupportResolver.java:225)
... 28 more
Caused by: java.lang.IllegalStateException: ServerContainer is null
at org.atmosphere.container.JSR356AsyncSupport.<init>(JSR356AsyncSupport.java:43)
... 33 more

ao¹t 12, 2015 8:33:08 PM com.vaadin.server.VaadinServletService ensurePushAvailable
AVERTISSEMENT:
=================================================================
Atmosphere could not be loaded. When using push with Vaadin, the
Atmosphere framework must be present on the classpath.
If using a dependency management system, please add a dependency
to vaadin-push.
If managing dependencies manually, please make sure Atmosphere
2.1.2.vaadin6 is included on the classpath.
Will fall back to using PushMode.DISABLED.
=================================================================

我试图将 javax.websocket-api-1.1.jar 添加到库中,但没有任何改变,仍然是同样的错误。

我不知道问题出在哪里,也许我需要添加其他东西,但目前我不知道是什么。

编辑:

我不使用 Maven/Gradle,对于我下载的 tomcat8 嵌入式 on tomcat8 website所需的一切,对于测试应用程序 war ,我使用了我的一个项目,与非嵌入式 Tomcat8 一起工作正常。

最佳答案

我认为这个问题是由类路径中包含的任何 Jetty 库引起的。它们可以在任何其他 java jar 中 - 因此您应该通过某种工具(甚至集成的 IDE)分析应用程序的所有依赖项。

我的怀疑也是基于 Vaadin Configuration tutorial .请看那里 - 特别是在 Tomcat 8 section .

编辑:启用 Vaadin 推送时,请查看官方 wiki .描述了应该在项目中进行的所有更改(依赖项、UI 注释、web.xml)。

关于嵌入 tomcat8 的 VAADIN 推送不可用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31973016/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com