我需要在WebSphere中设置URL资源,并且正在关注this教程。但是,本教程需要使用WebSphere Studio修改WebSphere的 web.xml 和 ibm-web-bnd.xml 。我没有WebSphere Studio,所以我需要使用文本编辑器手动修改这些文件。我试图“搜索”2个文件,但“搜索结果”太多了,我不知道哪个是正确的文件。
我在哪里可以找到2个文件?我还需要为resource-ref
的id设置什么值?我注意到WebSphere Studio没有任何用于设置resource-ref
的文本字段,但它的代码视图中有一个值。
谢谢!
答案 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创建;你可以在那里放置任何标识符。
编辑(添加说明)
简而言之,过程就是:
在web.xml
中,您可以定义本地 JNDI名称。这将是您的Java代码引用URL的名称。例如,web.xml
。您的代码必须在myWebsiteUrl
上执行JNDI查找。定义如下:
java:comp/env/myWebsiteUrl
在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/
。
在url/test
中,您需要将ibm-web-bnd.xml
(由您的应用程序查找)绑定到myWebsiteUrl
(这是WebSphere知道URL的JNDI名称)。定义将遵循:
url/test
不需要第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
属性。顺便说一句,你正在阅读的文章已经过时了。