首页 > 解决方案 > 处理声明默认 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)

我的问题是,如何优雅地处理服务器重新启动和重新部署“已经”部署在上下文根目录的应用程序?

标签: jakarta-eeglassfishpayara

解决方案


你创建了服务吗?

asadmin create-service

而且,一般来说,您不需要重新部署您的应用程序。如果这样做,请将人工制品放入域的自动部署目录中。


推荐阅读