禁用或隐藏" ejb-timer-service-app"在Glassfish / Payara上

时间:2017-07-26 12:26:00

标签: java java-ee timer glassfish payara

运行库存Glassfish或Payara Server,部署了一个名为" ejb-timer-service-app"其中包括http://localhost:8080/ejb-timer-service-app/timer

的网络前端

enter image description here

此处提供更多信息:https://docs.oracle.com/cd/E18930_01/html/821-2418/beahw.html

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

有没有办法让应用程序停用(不是ejb-timer-service本身),或者至少让前端页面不再可访问(隐藏它)而没有一些花哨的防火墙或负载均衡器配置?

1 个答案:

答案 0 :(得分:1)

显然目前无法启用开箱即用的应用程序。我在github上请求了payara的新功能:https://github.com/payara/Payara/issues/1803

因为应用程序服务器需要ejb-timer-service-app.war来提供EJB计时器服务,所以无法删除它。

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

  

我在本地做了一些关于如何在没有前端的情况下删除前端的快速测试   损坏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计时器正常工作