【问题标题】:Create navigation menu dynamicly based on deployed jars根据部署的 jar 动态创建导航菜单
【发布时间】:2010-11-21 08:47:46
【问题描述】:

我只是在研究这个想法,所以没有示例代码。我一直在网上搜索,但我不确定我应该真正寻找什么,所以我没有找到太多。所以我想我会问,看看是否有人知道 a) 这是可能的。 b) 我应该怎么做。 (或者至少我应该学习如何去做。)

我正在使用运行 J2EE 的 JBoss 服务器的客户端上使用 JSP 页面构建 Web 应用程序,中间有一个 tomcat Web 服务器。

基本上,该应用程序包含不同的部分,这些部分将随着时间的推移而推出,而且客户可能会使用不同的部分组合。我能想到的最整洁的部署方式是将每个部分构建到它自己的 jar 中。然后根据与客户相关的部分组合,在 JBoss 服务器上仅安装所需的 jar 以进行部署。

为了支持这一点,我希望客户端导航菜单仅根据 JBoss 服务器上部署的内容显示可用部分。我的 servlet 是否可以找出服务器上部署的内容?我希望解决方案尽可能“愚蠢”,即我不想告诉它要寻找什么(除了标识我们的罐子的前缀),因为我还不知道我们可能会做的一切构建。

我目前的解决方案是在数据库中有一个表来保存已安装部分的列表。但这将需要在安装过程中更新脚本等,我相信我们应该能够通过在服务器上部署 jar 来做到这一点。

提前致谢。

【问题讨论】:

  • 感谢大家的快速回复。我没有想到清单。很棒的提示。

标签: java dynamic jakarta-ee jboss


【解决方案1】:

您可以将此信息添加到 MANIFEST.MF 文件中,然后在开始时枚举您的 web 应用程序中的所有文件(请参阅this answer 了解如何列出所有清单)。

【讨论】:

    【解决方案2】:

    我通过为我的应用程序配置“插件目录”设置来做类似的事情。然后它会定期扫描该目录以查找 Jars。它在清单中查找特定的元数据以确定 Jar 是否实际上是一个有效的插件,以及从其中加载什么类(该类的静态初始化程序将插件注册到应用程序)。

    那么你需要做的就是在那个目录中放置一个新的 Jar 来添加它的功能。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-01-13
      • 2021-08-02
      • 2012-07-29
      • 1970-01-01
      • 2011-01-26
      • 1970-01-01
      • 1970-01-01
      • 2022-06-14
      相关资源
      最近更新 更多