jakarta-ee - 处理声明默认 Web 模块的运行 Payara 5 的服务器意外关闭
问题描述
我在每周重启以执行特定任务的生产服务器上运行的 Payara 5 实例存在问题;Windows 更新等。我相信 Payara 服务突然被杀死,Payara 没有正常关闭。服务重新启动后,除一个之外的所有应用程序都将正确重新部署。导致问题的应用程序是部署到上下文根并且也被声明为默认 Web 模块的应用程序。
java.lang.Exception: Unable to deploy web module XXXXXXX at root context of virtual server server, because this virtual server declares a default-web-module
at com.sun.enterprise.web.WebContainer.loadWebModule(WebContainer.java:1833)
at com.sun.enterprise.web.WebContainer.loadWebModule(WebContainer.java:1745)
at com.sun.enterprise.web.WebApplication.start(WebApplication.java:107)
at org.glassfish.internal.data.EngineRef.start(EngineRef.java:123)
at org.glassfish.internal.data.ModuleInfo.start(ModuleInfo.java:294)
at org.glassfish.internal.data.ApplicationInfo.start(ApplicationInfo.java:357)
at com.sun.enterprise.v3.server.ApplicationLifecycle.initialize(ApplicationLifecycle.java:538)
at com.sun.enterprise.v3.server.ApplicationLoaderService.postConstruct(ApplicationLoaderService.java:334)
at org.jvnet.hk2.internal.ClazzCreator.postConstructMe(ClazzCreator.java:327)
at org.jvnet.hk2.internal.ClazzCreator.create(ClazzCreator.java:375)
at org.jvnet.hk2.internal.SystemDescriptor.create(SystemDescriptor.java:487)
at org.glassfish.hk2.runlevel.internal.AsyncRunLevelContext.findOrCreate(AsyncRunLevelContext.java:305)
at org.glassfish.hk2.runlevel.RunLevelContext.findOrCreate(RunLevelContext.java:89)
at org.jvnet.hk2.internal.Utilities.createService(Utilities.java:2126)
at org.jvnet.hk2.internal.ServiceHandleImpl.getService(ServiceHandleImpl.java:116)
at org.jvnet.hk2.internal.ServiceHandleImpl.getService(ServiceHandleImpl.java:90)
at org.glassfish.hk2.runlevel.internal.CurrentTaskFuture$QueueRunner.oneJob(CurrentTaskFuture.java:1237)
at org.glassfish.hk2.runlevel.internal.CurrentTaskFuture$QueueRunner.run(CurrentTaskFuture.java:1168)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
我的问题是,如何优雅地处理服务器重新启动和重新部署“已经”部署在上下文根目录的应用程序?
解决方案
你创建了服务吗?
asadmin create-service
而且,一般来说,您不需要重新部署您的应用程序。如果这样做,请将人工制品放入域的自动部署目录中。
推荐阅读
- tensorflow - 使用 CudnnLSTM 会出现此错误:No module named 'tensorflow.contrib' in kaggle kernel
- c++ - 从文件中读取成绩并将平均值输出到另一个文件 C++
- python - Spark RDD:在 range() 对象上使用 collect()
- java - 数字和字符串以格式组合
- here-api - 根据边界框的地方(搜索)API 在某些国家/地区失败
- c++ - 在 for 循环的某些迭代中,字符串的长度为 0,而在其他迭代中则为 0
- android - 颤振,Gradle 任务 assembleDebug 失败,退出代码为 1
- html - 无法让我的搜索图标位于搜索文本区域旁边
- swift - 使用 CoreData 聚合操作
- api - 在 Talend API 测试器中,如何在不评估 ${} 中的环境变量的情况下发送请求