ich eine einfache Testanwendung erstellt:Vaadin Drücken nicht mit tomcat8 verfügbar eingebettet
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;
}
}
Wenn ich dies von Eclipse starten, alles funktioniert gut, aber wenn ich dies zu einem runnable jar exportieren und führen Sie es ich diese bekommen Fehler:
HTTP-Status 500 - com.vaadin.server.ServiceException: java.lang.IllegalStateException: Push ist nicht verfügbar. Weitere Informationen finden Sie in vorherigen Protokollnachrichten.
Hier ist der gesamte Call-Stack:
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.
=================================================================
Ich versuchte javax.websocket-api-1.1.jar Bibliotheken aber nichts geändert, immer noch denselben Fehler hinzuzufügen.
Ich weiß nicht, wo das Problem ist, vielleicht muss ich etwas anderes hinzufügen, aber im Moment weiß ich nicht was.
EDIT:
Ich verwende Maven/Gradle nicht, denn die tomcat8 ich on tomcat8 website alles benötigt, heruntergeladen eingebettet und für die Testanwendung Krieg ich einen meiner Projekte, arbeiten gut mit Tomcat8 nicht eingebettet.
Sorry für die triviale Frage, aber haben Sie Ihrem Projekt (Maven, Gradle ...) vaadin-push hinzugefügt? Wenn Sie maven verwenden, können Sie uns auch einen Abhängigkeitsbaum geben. – jsosnowski