【问题标题】:How to access application.xml file of an EAR deployed to IBM WebSphere 6.1如何访问部署到 IBM WebSphere 6.1 的 EAR 的 application.xml 文件
【发布时间】:2010-01-11 20:59:40
【问题描述】:

我正在将 EAR 文件部署到 IBM WebSpehre 服务器 6.1 - 我希望能够访问存储在“显示名称”下的部署文件中的 EAR 应用程序名称。查看有关相关主题的堆栈溢出帖子,我已经能够通过 Java MBean API 或 IBM 的 WAS API 收集到这是可能的 - 问题是我找不到汇总这些 API 列表的地方,即无法弄清楚哪个一个开始看。我可以硬编码 WAS 安装位置并通过查看“installedApps”目录找到该文件,但这不是动态的。

有人有使用这些 API 的经验吗?动态查找已部署 EAR 的显示名称的任何其他方式?

编辑 - 我应该补充一点,我想要此信息的原因是动态加载我们的属性文件 - 由以下约定命名为“EARAppName.properties” - 所以你看到背后有一个合理的“理由”我的应用程序中的信息

编辑 2 - 我还应注意,此应用程序将始终部署在 WAS 上 - 但如果不是,则首选通用的非专有解决方案,但目前不是必需的。

编辑 3 - 我想要完成的工作: 有没有办法从应用程序代码中动态查找已部署 EAR 的显示名称?

【问题讨论】:

  • 请用您想要完成的内容编辑您的问题。

标签: java websphere ear websphere-6.1


【解决方案1】:

如果这个目标的全部原因是读取属性文件,那么我会推荐一种不同的方法。

使用 WebSphere 共享库。

http://publib.boulder.ibm.com/infocenter/wasinfo/v6r0/index.jsp?topic=/com.ibm.websphere.nd.doc/info/ae/ae/tcws_sharedlib.html

对于每个部署的 EAR,都有一个单独的目录,其中包含该 EAR 需要访问的属性文件。

为每个包含属性文件的目录创建共享库条目。

从 EAR 创建共享库引用到所需的共享库。

.

但是,以下链接可能对您的方法有所帮助:

Managing applications through programming

Interface AppManagement

【讨论】:

  • 这可能是提出动态解决方案的正确途径。不完全是我想要的,但足够接近“摇滚” - 谢谢。
  • 您将面临的另一个问题是管理每个 EAR 和环境(Dev/QA/Prod 等)的各种属性文件
【解决方案2】:

不是一个直接的答案,但对属性文件使用硬编码名称不是更简单吗?毕竟,对于给定的应用程序来说,知道要加载什么文件似乎是有意义的。编写代码来读取部署描述符中的显示名称听起来很奇怪(尤其是因为您作为Application Component Provider,不应该依赖Application Assembler 拥有的东西)。

【讨论】:

  • 我完全同意 - 从来没有说过请求“有意义”:) 我正在尝试提出一个更动态的公式 - 因为我喜欢配置或约定的动态解决方案。
【解决方案3】:

我想在这里完成同样的事情。我试图在运行时找到在 META-INF/application.xml 中找到的 ApplicationName。

我们在 Log4J File Appender 中使用此 AppName 来根据当前正在记录的应用程序创建适当的日志文件名。我们有很多程序员和很多应用程序,我们需要在框架中强制执行一些约定。

我希望我可以简单地调用:

InputStream in = new MyObject().getClass().getResourceAsStream(“META-INF/application.xml”);

我还尝试将类加载器更改为“PARENT_LAST/FIRST”和“Single ClassLoader”,但它不起作用。

我可以在相对于我的 war 文件的文件系统上找到 application.xml,但我不确定它是否会一直工作。

JMX Api 真的是唯一的方法吗?

【讨论】:

    【解决方案4】:

    这不是你的应用程序知道的,而是 EAR 处理工具,包括应用程序服务器。

    【讨论】:

    • 那么有没有办法呢? Java 有一种方法可以通过反射找到有关类和方法的信息,难道不应该还有一种方法可以发现 EAR 名称吗?
    猜你喜欢
    • 1970-01-01
    • 2018-09-22
    • 1970-01-01
    • 2011-06-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多