Java 禁用或隐藏";ejb定时器服务应用程序“;关于玻璃鱼/帕亚拉

Java 禁用或隐藏";ejb定时器服务应用程序“;关于玻璃鱼/帕亚拉,java,jakarta-ee,timer,glassfish,payara,Java,Jakarta Ee,Timer,Glassfish,Payara,运行stock Glassfish或Payara服务器时,部署了一个名为“ejb定时器服务应用程序”的默认应用程序,该应用程序在 更多信息请点击此处: 遗憾的是,前端无法通过受保护的管理控制台(端口4848)访问,只能通过主主机(端口8080和8181)访问。所以每个知道我的服务器URL的人都可以访问此页面 有没有一种方法可以停用应用程序(而不是ejb计时器服务本身),或者在没有一些奇特的防火墙或负载平衡器配置的情况下,至少使前端页面不再可访问(隐藏它)?显然,目前没有办法立即禁用应用程序。我

运行stock Glassfish或Payara服务器时,部署了一个名为“ejb定时器服务应用程序”的默认应用程序,该应用程序在

更多信息请点击此处:

遗憾的是,前端无法通过受保护的管理控制台(端口4848)访问,只能通过主主机(端口8080和8181)访问。所以每个知道我的服务器URL的人都可以访问此页面


有没有一种方法可以停用应用程序(而不是ejb计时器服务本身),或者在没有一些奇特的防火墙或负载平衡器配置的情况下,至少使前端页面不再可访问(隐藏它)?

显然,目前没有办法立即禁用应用程序。我在github为payara申请了新功能:

因为应用服务器需要ejb-timer-service-app.war来提供ejb-timer服务,所以不能删除它

但是,我已经创建了一个解决方案,至少可以禁用前端部件:

我在本地做了一些快速测试,以了解如何在没有 破坏EJB计时器服务。这是我在这部电影里改变的
${PAYARA_HOME}/glassfish/lib/install/applications/ejb timer service app.war

删除文件
WEB-INF\sun WEB.xml

删除文件
WEB-INF\WEB.xml

删除文件夹
WEB-INF\classes\com

Shell命令:

zip -d ejb-timer-service-app.war "WEB-INF/sun-web.xml"
zip -d ejb-timer-service-app.war "WEB-INF/web.xml"
zip -d ejb-timer-service-app.war "WEB-INF/classes/com/*"
如果域已启动,则还必须删除该文件夹
glassfish\domains\domain1\applications\ejb timer service app
清理已部署的前端

域结束后,在重新启动servlet 不再是 可用(HTTP 404),但EJB计时器工作正常