4

在 servlet 中,我执行以下操作:

  Context context = new InitialContext();
  value = (String) context.lookup("java:comp/env/propertyName");

在 Apache Geronimo 实例 (WAS CE 2.1) 上,如何将值与键propertyName关联?

在 Websphere AS 6 中,我可以在管理控制台的“名称空间绑定”页面下为 JNDI 查找配置这些属性,但对于我来说,我无法在网络上的社区版中执行此操作。

4

2 回答 2

1

<env-entry>一种可能性是使用一个或多个标签将属性添加到您的 web.xml 文件(在 WEB-INF 目录中) 。例如,如下所示:

<env-entry>
   <description>My string property</descriptor>
   <env-entry-name>propertyName</env-entry-name>
   <env-entry-type>java.lang.String</env-entry-type>
   <env-entry-value>Your string goes here</env-entry-value>
</env-entry>

每个 env-entry 标记声明一个新的环境变量,然后您可以从java:comp/env上下文中访问它。

添加必要env-entry的 's 后,您可以使用类似于您已经发布的代码来访问这些值。请注意,我没有安装 Geronimo,所以我不知道是否需要进行任何其他配置才能使其正常工作。

于 2008-09-27T14:55:38.337 回答
0

可以将您的属性放在一个文件中,并使文件的名称和位置成为 web.xml 中 URL 类型的资源引用。资源的值在 geronimo-web.xml 中设置。

您的 web.xml 将包含以下条目:

<resource-ref>
    <res-ref-name>configFileName</res-ref-name>
    <res-type>java.net.URL</res-type>
</resource-ref>

在 geronimo-web.xml 中定义 configFileName 的值

<name:resource-ref>
    <name:ref-name>configFileName</name:ref-name>
    <name:url>file:///etc/myConfigFile</name:url>
</name:resource-ref>

在java中,您有以下代码来查找值:

initialContext = new InitialContext();
URL url = (URL) initialContext.lookup("java:comp/env/configFileName");
String configFileName = url.getPath();

然后你必须打开文件并读取其中的任何值。

所有这一切的结果是您在文件系统上的文件中拥有属性。如果您重新部署应用程序,它不会被覆盖。

于 2011-03-16T12:48:51.560 回答