注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

白小博

Morning的脚印,一步,一步……

 
 
 

日志

 
 

L-20061214  

2006-12-14 21:52:00|  分类: L-实习日志 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
2006-12-14

小白今天解决一下WebApplication部署问题,主要是配置文件的放置路径。
小白以前在内部测试的时候,WebApp模块的配置文件一直放在Tomcat服务器启动的路径下。假如用Tomcat提供的tomcat5.jar启动,配置文件夹 \conf 就需要放在Tomcat的安装路径下;而如果用Eclipse的插件来启动Tomcat,则配置文件夹 \conf 就必须放在Eclipse的安装路径下,这样十分不方便。因为这些配置文件应当与WebApp是紧密相关的,应该与其它文件(如JSP、classes等)一样,放在这个WebApp的项目路径里面。
现在进行项目整理与打包,所以,这个问题就显得尤为突出。经过一个上午查资料,找到几种方案:

小白1. 将/WEB-INF/config/加到环境变量CLASSPATH下面,然后在你的IO类中使用this.getClassLoader.getResourceAsStream(filename);
class loader会自动到类路径中搜索制定的资源名。如果你把要读取的文件直接放在WEB-INF下,就无需将/WEB-INF/config/加入类路径了。
【这个方案,网上有高人评论:Also, getClass().getResourceAsStream() won't have any effect unless you manually add the WEB-INF/conf to your classpath first - and then you need to know where it's installed.】

小白2. 使用绝对路径。做个配置文件放在WEB-INF或其他类路径下(或者在web.xml中用env标签配置),在其中指定文件的绝对路径,比如C: /tomcat5.0/webapps/test/WEB-INF/config,然后在程序中读取这个配置参数。这样系统移植的时候只需修改这个配置参数。

小白3. 用String path = getServletContext().getRealPath("/WEB-INF/conf/" + fileName);
可以获得当前WebApp活动路径,我在MainContextListener里可以轻松获得这个路径,然后通过接口传递给后台的模型中,就可以实现了。
至于在应用程序那边,也可以通过这个接口传递一个空字符串过去,即可实现相同的功能。

小白经过与老师商量,决定先用第三种方案,老师把所有路径提取出来,并再前面加上一个类似basePath的字符串。我传递给老师的是WebApp所在的路径,应用程序传递空字符串。
  评论这张
 
阅读(71)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018