在WebSphere Application Server 7.0上设置URL资源?

时间:2012-12-06 06:56:35

标签: websphere jndi web.xml websphere-7

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

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

谢谢!

1 个答案:

答案 0 :(得分:18)

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

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

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

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

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

编辑(添加说明)

简而言之,过程就是:

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

    java:comp/env/myWebsiteUrl
  2. 在WebSphere本身中,添加URL定义。关键是WebSphere的JNDI树中的JNDI名称​​,URL将通过该名称知道。您可以在那里设置任何值,但建议(按照惯例)使用<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> 作为前缀。例如:url/

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

    url/test
  4. 不需要第3步。如果部署时不存在<resource-env-ref name="myWebsiteUrl" binding-name="url/test"/> ,则基于GUI的部署流(通过WAS管理控制台部署应用程序时使用)将提示您输入绑定值。 (如果使用脚本进行部署,只要以不同的方式指定绑定,您仍然可以省略ibm-web-bnd.xml文件,但这超出了本答案的范围。阅读有关策略文件的IBM文档ibm-web-bnd.xml

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