【问题标题】:Defining custom properties in Application panel - how to get the value in the code?在应用程序面板中定义自定义属性 - 如何获取代码中的值?
【发布时间】:2012-12-23 03:18:31
【问题描述】:

在 IBM WebSphere Web 管理控制台中,可以转到应用程序 -> WebSphere 企业应用程序,选择一个应用程序并单击“自定义属性”链接。会有一个页面来添加键值对。您将如何从代码中访问这些值?这些属性似乎既没有出现在 System 属性中,也没有出现在 ServletContext 中。

【问题讨论】:

  • 有趣。我在 WAS 8 中看到了这一点,但在 WAS 6.1 中没有。在 WAS 6.1 中,我只在 Application Server > JVM 下看到自定义属性,而那里的那些属性确实成为系统属性(我们使用它们)。
  • 自定义属性出现的地方很多,例如JVM、Web 容器、WebSphere MQ、策略集绑定等等,但是这个特定的问题是关于应用程序的,我认为它们不是将信息从 WebSphere(运行时环境)传递到企业应用程序的一种方式。我在下面的答案中描述了更好的方法。
  • 我迟到了...但如果其他人看到这一点,1) WebSphere 自定义属性确实很好而且很有用,2) dbreaux 是正确的 - 你在 Java 中将它们作为普通系统属性:String propVal = System.getProperty("my.custom.property");
  • 当您按照 OP 的指示从企业应用程序添加时,WAS 9 不会出现在 System.getProperty() 中。

标签: websphere websphere-8


【解决方案1】:

我在 IBM WebSphere Application Server 的 7 年职业生涯中从未见过使用它。我认为如果它曾经被使用过,我会将该功能称为支持它的过去版本的 IBM WebSphere 的遗留功能。

对于特定于应用程序的配置设置,我强烈建议将 web.xml 用于 Web 应用程序或将 @Resource 注释用于 Web 应用程序和其他应用程序类型。

【讨论】:

  • 只是检查我的 WAS 6.1 和 8.0 服务器,我在 8.0 中看到了这一点,但在 6.1 中没有。
  • 我在 IBM WebSphere 的 8 年职业生涯中也从未见过它 :) 我认为这是全新的东西。如果这是我认为的(应用程序级别的系统道具),那将非常方便。但它不起作用..所以可能不是我认为的那样,可能是它只允许 IBM 属性定义的一些特定属性来配置应用程序的运行方式,而不是让您定义系统属性。可能有人肯定知道吗?
【解决方案2】:

这个答案并不完全在主题上,但它可以解决为 WebSphere 管理的 Web 应用程序定义和设置配置属性的问题。

在 WebSphere 下为 Web 应用程序定义配置设置的最简单方法如下:

  1. 使用 servlet 初始化参数定义 Web 应用程序设置:

web.xml

<servlet>
  <servlet-name>my-servlet</servlet-name>
  <servlet-class>
    my.servlet.ClassName
  </servlet-class>
  <init-param>
    <param-name>someConfigurationPropertyName</param-name>
    <param-value>This Value Can Be Set</param-value>
  </init-param>
</servlet>
  1. 这些servlet 参数的值可以使用Web 管理控制台更改,您可以在Enterprise Applications &gt; your-web-application-name &gt; Initialize parameters for servlets 中找到并更改它们

【讨论】:

    【解决方案3】:

    我在 WAS ND 8.5 上对此进行了测试。 向应用程序添加自定义属性会将其添加到 deployment.xml。

    我用属性名称=“testprop”值=“true”更新了\DefaultApplication.ear。它在这里更新:

    C:\WASNEW85\WebSphere\AppServer\profiles\Dmgr01\config\cells\cell01\applications\DefaultApplication.ear.ear\deployments\DefaultApplication.ear

    数值显示:

    <properties xmi:id="Property_1424805152486" name="testprop" value="true" description="test-forum" required="false"/>
    

    我希望这会有所帮助。

    【讨论】:

      【解决方案4】:

      在 IBM WebSphere Application Server 版本 7 或版本 8 上设置 Web 容器自定义属性

      1. 在管理控制台中,单击“Servers”,在 Servers 下单击“Server Types”,在 Server Types 下单击“WebSphere Application Servers”
      2. 单击要应用自定义属性的服务器
      3. 在“配置”和“容器设置”下单击“Web 容器设置”,在“Web 容器设置”下单击“Web 容器”
      4. 在“配置”和“其他属性”下单击“自定义属性”
      5. 在“自定义属性”页面中,单击“新建”
      6. 在设置页面中,在“名称”字段中输入要添加的自定义属性的名称,在“值”字段中输入要为自定义属性设置的值。请注意,某些属性区分大小写。
      7. 点击“应用”或“确定”
      8. 在出现的“消息”框中点击“保存”
      9. 重启服务器以使自定义属性生效

      在 IBM WebSphere Application Server 版本 6 上设置 Web 容器定制属性:

      1. 在管理控制台中,单击“服务器”,然后在“服务器”下单击“应用程序服务器”
      2. 单击要应用自定义属性的服务器
      3. 在“配置”和“容器设置”下单击“Web 容器设置”,然后在“Web 容器设置”下单击“Web 容器”
      4. 在“配置”和“其他属性”下单击“自定义属性”
      5. 在“自定义属性”页面中,单击“新建”
      6. 在设置页面中,在“名称”字段中输入要添加的自定义属性的名称,在“值”字段中输入要为自定义属性设置的值。请注意,某些属性区分大小写。
      7. 点击“应用”或“确定”
      8. 在出现的“消息”框中点击“保存”
      9. 重启服务器以使自定义属性生效

      使用 wsadmin 在 WebSphere Application Server 版本 6 上设置 Web 容器定制属性:

      1. 创建一个 jacl 脚本来添加/更新自定义属性。
      2. 确保服务器正在运行。
      3. 使用“wsadmin -f .jacl”在 wsadmin 中运行 jacl 脚本
      4. 重启服务器以使自定义属性生效。

      【讨论】:

      • 这如何回答这个问题,即以编程方式访问自定义属性?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-04-16
      • 1970-01-01
      • 2021-08-25
      • 1970-01-01
      • 2015-04-26
      • 2013-05-30
      • 1970-01-01
      相关资源
      最近更新 更多