【问题标题】:Setting up a URL resource on WebSphere Application Server 7.0?在 WebSphere Application Server 7.0 上设置 URL 资源?
【发布时间】:2012-11-24 04:15:39
【问题描述】:

我需要在 WebSphere 中设置一个 URL 资源,并遵循 this 教程。但是,本教程需要使用 WebSphere Studio 修改 WebSphere 的 web.xmlibm-web-bnd.xml。我没有 WebSphere Studio,所以我需要使用文本编辑器手动修改这些文件。我试图“搜索”这两个文件,但“搜索结果”太多了,我不知道哪个是正确的文件。

在哪里可以找到这 2 个文件?我还需要为resource-ref 的 id 设置什么值?我注意到 WebSphere Studio 没有用于设置 resource-ref 的任何文本字段,但它在其代码视图中有一个值。

谢谢!

【问题讨论】:

    标签: websphere jndi web.xml websphere-7


    【解决方案1】:

    web.xml 是一个标准的 JavaEE 文件,其结构在 Servlet 规范中有详细记录。在 web.xml 中,您声明了在本地 JNDI 命名空间 (java:comp/env) 中已知的 URL。

    web.xml 应该位于WEB-INF 内,在您的 WAR 项目结构之下。如果您使用 IDE(例如 Eclipse)来创建 Web 项目,则应该已经为您创建了该文件(除非您使用 Servlet Specification 2.5 及更高版本 - JavaEE 5.0 中包含 Servlet Specification 2.5 - 其中部署描述符是可选的)。

    ibm-web-bnd.xml 是特定于 WebSphere 的文件。它包含将声明的工件(例如 URL 定义)绑定到一个真实工件中。您应该参考 IBM 的文档以了解该文件的格式。

    ibm-web-bnd.xml 文件应与web.xml 位于同一目录中。

    resource-refid 属性可以设置为您喜欢的任何值,只要它被ibm-web-bnd.xml 内的匹配id 属性交叉引用即可。这就是 WebSphere 如何将ibm-web-bnd.xml 中的定义与web.xml 中的定义相关联。您在教程中看到的随机字符串是由 RAD 或 WSAD 创建的;你可以在那里放置任何标识符。

    编辑(添加说明)

    简而言之,过程是这样的:

    1. web.xml 中,您定义本地 JNDI 名称。这将是您的 Java 代码引用 URL 的名称。例如,myWebsiteUrl。您的代码必须在 java:comp/env/myWebsiteUrl 上执行 JNDI 查找。定义大致如下:

      <resource-env-ref>
          <resource-env-ref-name>myWebsiteUrl</resource-env-ref-name>
          <resource-env-ref-type>java.net.URL</resource-env-ref-type>
      </resource-env-ref>
      
    2. 在 WebSphere 本身中,添加一个 URL 定义。那里的关键是JNDI 名称​​在WebSphere 的JNDI 树中,通过它可以知道URL。您可以在那里设置任何值,但建议(按照惯例)在其前面加上 url/。例如:url/test

    3. ibm-web-bnd.xml 中,您需要将myWebsiteUrl(由您的应用程序查找)绑定到url/test(这是WebSphere 知道URL 的JNDI 名称)。定义大致如下:

      <resource-env-ref name="myWebsiteUrl" binding-name="url/test"/>
      

    步骤 3 不是必需的。如果在部署时ibm-web-bnd.xml 不存在,那么基于 GUI 的部署流程(在您通过 WAS 管理控制台部署应用程序时使用)将提示您输入绑定值。 (如果您使用脚本进行部署,您仍然可以省略 ibm-web-bnd.xml 文件,只要您以不同的方式指定绑定,但这超出了此答案的范围。阅读有关 策略文件的 IBM 文档 em> 和AdminApp.installApplication)

    注意:只要您使用 JavaEE 5.0 及更高版本,就不需要定义中的id 属性。顺便说一句,您正在阅读的文章已经过时了。

    【讨论】:

    • 嗨,艾萨克。感谢您的回复!您能教我如何设置 WebSphere 以供 JNDI 使用吗?我没有 JNDI 的背景,这是我第一次创建 URL 资源,所以我想我误解了一些东西。
    • 据我了解,要使用 JNDI,我需要在 WebSphere 上设置一个 URL 资源,其中我需要在键值对中声明一个 URL(例如,url1 = website.com/url1)。该密钥将在 Web 应用程序中使用,其中它可以以java:comp/env/key 格式引用。根据我在教程中的理解,我需要设置 WebSphere 的 web.xml 和 ibm-web-bnd.xml,而不是 WAR 的 web.xml 和 ibm-web-bnd.xml。或者本教程是否引用了我的 WAR 文件的 XML?如果是这样,那么我可以在哪里设置我在 WebSphere 上的 URL 值?
    • 嗨!再次感谢!将测试它。 :D 也感谢您指出它已经过时了。我没有注意到它适用于 WAS v5,但我别无选择,因为它是我找到的最体面的教程。为 WAS v5 和 WAS v7 设置 JNDI 的方式有什么不同吗?
    • 如果您询问在 WAS 管理控制台中定义 URL 的方式是否存在差异,那么没有。很相似,你应该很快就能弄清楚。
    • 一个小错误 - 自 Java EE 6 起才有可能部署无描述符的 Web 应用程序。
    猜你喜欢
    • 2014-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-20
    • 1970-01-01
    • 2011-09-12
    • 1970-01-01
    相关资源
    最近更新 更多