【问题标题】:Disable or hide "ejb-timer-service-app" on Glassfish/Payara在 Glassfish/Payara 上禁用或隐藏“ejb-timer-service-app”
【发布时间】:2017-07-27 00:41:34
【问题描述】:

运行一个普通的 Glassfish 或 Payara 服务器,部署了一个名为“ejb-timer-service-app”的默认应用程序,其中包括一个位于 http://localhost:8080/ejb-timer-service-app/timer 的 Web 前端

更多信息在这里:https://docs.oracle.com/cd/E18930_01/html/821-2418/beahw.html

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

有没有办法停用应用程序(不是 ejb-timer-service 本身)或至少在没有一些花哨的防火墙或负载平衡器配置的情况下使前端页面不再可访问(隐藏)?

【问题讨论】:

    标签: java jakarta-ee timer glassfish payara


    【解决方案1】:

    显然,目前没有办法立即禁用该应用程序。我在 github 上请求 payara 的新功能:https://github.com/payara/Payara/issues/1803

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

    但是我已经创建了一个解决方法来至少禁用前端部分:

    我在本地做了一些快速测试,了解如何在没有 损坏 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://localhost:8080/ejb-timer-service-app/timer 不再是 可用(HTTP 404),但 EJB 计时器工作正常

    【讨论】:

      猜你喜欢
      • 2016-10-10
      • 1970-01-01
      • 2019-07-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多