2007-6-21 20:25:00
WebSphere 6.0陷阱
我们在基于WebShere Application Server (WAS) 进行J2EE或者Web应用开发时,通常会遇到以下几种情况
1、将已经发布的应用从WAS中导出来,并重新发布,但这些应用的许多文件已经被更新过;
2、新开发的应用对象诸如Servlet或者需要新增加数据源等需要加入到原部属应用中
在WAS的应用控制台中提供了对已经发布的应用的导出功能,但是这个功能千万不能用。我们来分析一下WAS的部分目录结构,看一下WAS是怎样存储已经部署的应用文件的。
以下假设应用名称为xxxx,ear包为xxxx.ear。
WAS安装路径为c:\WebSphere\AppServer\profiles\AppSrv01 (WAS_INSTALL_PATH)
则存储已经发布的war包的路径为:
path1:WAS_INSTALL_PATH\config\cells\Node01Cell\applications\xxxx.ear\xxxx.ear
应用发布后的目录为:
path2:WAS_INSTALL_PATH\installedApps\Node01Cell\xxxx.ear
通常,我们会在应用发布后对一些文件进行修改,这些目录就位于path2下。但是WAS的导出功能只会将path1下的war包导出。这样,如果当前的最新版本是10.0,发布的第一个版本是1.0,那么使用导出功能,你只能得到1.0版本的文件,那样的话只能用一句话来形容,那就是辛辛苦苦几十年,一夜回到解放前 :)
应用发布后的目录为:
path2:WAS_INSTALL_PATH\installedApps\Node01Cell\xxxx.ear
通常,我们会在应用发布后对一些文件进行修改,这些目录就位于path2下。但是WAS的导出功能只会将path1下的war包导出。这样,如果当前的最新版本是10.0,发布的第一个版本是1.0,那么使用导出功能,你只能得到1.0版本的文件,那样的话只能用一句话来形容,那就是辛辛苦苦几十年,一夜回到解放前 :)
在解决第二个问题是我们一定是要修改应用的部署描述符文件web.xml的。但是如果我们仅仅修改path2目录下的web-inf目录下的web.xml文件的话,一点作用都没有(如果要使修改该文件起作用,只有重新发布应用),这一点不像tomcat或者Weblogic之类的Application Server那么方便。因为正真被WAS使用的web.xml文件在以下目录下:
path3:WAS_INSTALL_PATH\config\cells\Node01Cell\applications\xxxx.ear\deployments\xxxx\web-inf\web.xml
只有修改这个文件中的内容才能正真起作用。无论是新增Servlet还是增加Filter,Datasource之类的对象都需要修改这个文件,并重启WAS。
以上为WAS应用中需要注意的一些小问题,但如果不注意就会成为应用中的陷阱了 :)
0
推荐到鲜果:
下一篇:人生
上一篇:忙中偷闲,看了两本小书.....


评论