6

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

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

谢谢!

4

1 回答 1

17

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

web.xml应该位于WEB-INFWAR 项目结构下方的内部。如果您使用 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.

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

编辑(添加说明)

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

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

    <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 定义。关键是WebSphere 的 JNDI 树中的 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 文档和AdminApp.installApplication

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

于 2012-12-06T07:27:24.670 回答