Apache Geronimo 的 jndi 默认上下文中的 java.lang.String - 如何?

发布于 2024-07-06 09:37:55 字数 332 浏览 12 评论 0原文

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

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

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

在Websphere AS 6中,我可以在管理控制台的“名称空间绑定”页面下配置这些属性以进行JNDI查找,但在我的一生中,我找不到在网络社区版中执行此操作的方法。

In a servlet I do the following:

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

On an Apache Geronimo instance (WAS CE 2.1) how do i associate a value with the key propertyName?

In Websphere AS 6 i can configure these properties for JNDI lookup under the "Name Space Bindings" page in the management console, but for the life of me I can find no way to do this in community edition on the web.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

逆夏时光 2024-07-13 09:37:55

一种可能性是使用一个或多个 标记将属性添加到 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 后,您可以使用与已发布的代码类似的代码来访问这些值。 请注意,我没有安装 Geronimo,因此我不知道是否需要完成任何其他配置才能完成这项工作。

One possibility is to add the properties to your web.xml file (in the WEB-INF directory), using one or more <env-entry> tags. For example, something like the following:

<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>

Each env-entry tag declares a new environment variable that you can then access from the java:comp/env context.

Once you add the necessary env-entry's you can use code similar to what you already posted to access these values. Mind you, I don't have Geronimo installed, so I don't know if there is any additional configuration that needs to be done in order to make this work.

你另情深 2024-07-13 09:37:55

可以将属性放入文件中,并将文件的名称和位置设置为 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();

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

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

It is possible to put your properties in a file and make the name and location of the file a resource-ref of type URL in web.xml. The value of the resource is set in geronimo-web.xml.

Your web.xml will have the following entry:

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

In geronimo-web.xml you define the value for the configFileName

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

In java you have the following code to lookup the value:

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

Then you have to open the file and read whatever value is in there.

The result of all this is that you have the properties in a file on the filesystem. It will not be overwritten if you redeploy your application.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文