- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用以下代码启动嵌入式 Jetty:
Server server = new Server(8080);
MBeanContainer mbContainer = new MBeanContainer(ManagementFactory.getPlatformMBeanServer());
server.addBean(mbContainer);
WebAppContext webapp = new WebAppContext("/home/igor/projects/javalite/activeweb-simple/src/main/webapp/", "/");
server.setHandler(webapp);
server.start();
Thread.sleep(10000);
System.out.println("Failed: " + server.isFailed());
System.out.println("Running: " + server.isRunning());
System.out.println("Started: " + server.isStarted());
System.out.println("Stopped: " + server.isStopped());
server.join();
我正在部署的 Web 应用程序在 ServletFilter.init()
方法期间抛出故意 RuntimeException
。
当我启动服务器时,我得到以下输出:
526 [main] WARN org.eclipse.jetty.webapp.WebAppContext - Failed startup of context o.e.j.w.WebAppContext{/,file:/home/igor/projects/javalite/activeweb-simple/src/main/webapp/},/home/igor/projects/javalite/activeweb-simple/src/main/webapp/
org.javalite.activeweb.InitException: Failed to create and init a new instance of class: app.config.AppBootstrap: class java.lang.RuntimeException:Fail!
at app.config.AppBootstrap.init(AppBootstrap.java:32)
at org.javalite.activeweb.RequestDispatcher.initAppConfig(RequestDispatcher.java:134)
at org.javalite.activeweb.RequestDispatcher.initApp(RequestDispatcher.java:70)
at org.javalite.activeweb.RequestDispatcher.init(RequestDispatcher.java:64)
at org.eclipse.jetty.servlet.FilterHolder.doStart(FilterHolder.java:118)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64)
at org.eclipse.jetty.servlet.ServletHandler.initialize(ServletHandler.java:770)
at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:265)
at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1242)
at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:717)
at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:494)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64)
at org.eclipse.jetty.server.handler.HandlerWrapper.doStart(HandlerWrapper.java:95)
at org.eclipse.jetty.server.Server.doStart(Server.java:282)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64)
at app.controllers.SimpleTest.test(SimpleTest.java:26)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:117)
at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:234)
at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:74)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144)
Caused by: java.lang.RuntimeException: Fail!
... 42 more
543 [main] INFO org.eclipse.jetty.server.AbstractConnector - Started SelectChannelConnector@0.0.0.0:8080
Failed: false
Running: true
Started: true
Stopped: false
据我所知,server.start();
是同步的,我的应用程序在此调用期间失败。
如您所见,应用程序未启动。但是,状态值“失败”、“正在运行”、“已启动”不正确!
我的应用程序无法运行(故意),并且服务器在启动期间出现异常,但它报告一切正常。
我需要的是:启动服务器,然后确保它正确启动了 web 应用程序,然后再继续。
如何测试服务器是否已启动并成功部署我的应用程序?
编辑:相关依赖项:
<dependency>
<groupId>org.eclipse.jetty.aggregate</groupId>
<artifactId>jetty-webapp</artifactId>
<version>8.1.20.v20160902</version>
</dependency>
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-jmx</artifactId>
<version>8.1.20.v20160902</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
</dependency>
最佳答案
您正在查询错误的对象。服务器本身可以托管许多网络应用程序,并且本身不依赖于它们。其中一些应用程序可能正常,而另一些可能在启动时失败,因此服务器状态不会反射(reflect) Web 应用程序的状态。对于您的情况,服务器启动正常并且可以接收 http 请求。
尝试查询您的网络应用程序:
webapp.isStarted()
等等。它与 Server
类似地实现 AbstractLifeCycle
。
更新:
由于基本状态并不是真正的通信(也就是说,即使失败的应用程序也被认为是已启动
),也许在这里使用isAvailable()
会更好。我记得还使用了 getUnavailableException() 来获取初始化期间引发的确切异常。
关于java - Jetty 错误地报告状态 isRunning() 和 isFailed(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39310302/
我正在尝试为游戏制作背景音乐。由于某种原因,歌曲第一次播放后就不会再播放了。我做错了什么以及如何解决它?我知道我可以使用 .loop() 但我希望它永远重复,并且 .loop() 最终会停止。 pu
我正在创建一个正在创建门(AND、OR 等)的程序,但是当我想创建一个 SR 锁存器时,我需要使用一个计时器。 因此,当调用此方法 (inputChanged) 时,它应该检查计时器是否正在运行。如果
这是我第一次来这个论坛。我的 java 计时器有问题。我的程序在不同时间显示图像。这是我的代码 //TIMER //creo timer per il tempo di visualizzaz
OSStatus err = AudioQueueNewOutput(&audioDescription, AudioPlayerAQOutputCallback, ( void* )self, ni
我遇到了一个奇怪的行为。如果我使用 start() 启动 AnimationDrawable,那么在动画完成后,方法 isRunning() 仍将返回 true。它是“一次性”动画,不循环播放。 这是
我使用以下代码启动嵌入式 Jetty: Server server = new Server(8080); MBeanContainer mbContainer = new MBeanContaine
我正在使用 AVCaptureSession 捕捉视频,在 iOS 6.1 上一切正常。但是,我一直在尝试从另一个线程检查我的捕获 session 是否正在通过 isRunning 方法运行。但是,无
本文整理了Java中org.apache.zookeeper.server.ZooKeeperServer.isRunning()方法的一些代码示例,展示了ZooKeeperServer.isRunn
本文整理了Java中org.apache.twill.zookeeper.ZKClientService.isRunning()方法的一些代码示例,展示了ZKClientService.isRunni
在Java中,我需要检查音频剪辑是否正在运行,但是当我尝试类似的操作时: if(clip1.isRunning()){ } Eclipse给了我以下错误: “类型AudioClip的isRunning
DataLine 中的 isRunning() 和 isActibe() 有什么区别?当线路实际处理数据时,这两个标志似乎都已设置。 更新 那里有两对方法: 1) 打开/关闭 2) 启动/停止 还有三
我正在我的 PI 上测试一个程序。在主机 pc 上运行它时没有显示错误,相反,在 pi (CM3) 上运行它会卡住。 我正在尝试使用多线程。 从主线程开始,在构造函数中启动了一个 QThread,然后
本文整理了Java中org.apache.hadoop.hbase.procedure2.store.wal.WALProcedureStore.isRunning()方法的一些代码示例,展示了WAL
我有一个简单的 SKAudioNode: 让 backgroundSound = SKAudioNode(fileNamed: "backgroundSound.mp3") 我用播放 backgrou
下面是我的 qthread 实现的代码。我正在尝试从卫星获取 gps 数据。即使程序退出 gpsSearch() 槽函数,QThread 也不会产生 finished() 信号。每当单击按钮时,都会调
我是一名优秀的程序员,十分优秀!