Posted on 2008-12-10 20:59 
leekiang 阅读(200) 
评论(0)  编辑  收藏  所属分类: 
java 
			
			
		 
		普通的写法在weblogic的war包中读取不到资源,尝试以下的写法
public   static   final   String   PROPERTIES_FILE_NAME   =   "/*.xml";   
   path   =   this.getClass().getResource("").getPath();   
                           int   pos   =   path.indexOf("WEB-INF");   
                           path   =   path.substring(0,   pos)+"WEB-INF\\classes";   
   file   =   new   File(path,   PROPERTIES_FILE_NAME);   
   把文件放到web-inf/classes   的目录下面我想应该不会在出现这样的问题了
以下摘自http://topic.csdn.net/t/20050915/16/4272932.html
Class   类提供了下面的方法:   
   public   java.io.InputStream   getResource(java.lang.String   path)   
      
  //   Thread.getContextClassLoader();   能得到  
WebApps的当前类加载器,如果你的调用是在你自己写的   Java   类中(它放在   /WEB-INF/classes   或  
/WEB-INF/lib   的   jar   中,web   应用程序的根:     
   %APP_BASE%/  
路径下的所有东西都归   ContextClassLoader   来加载的,如果你的   getResource   调用是在  
/WEB-INF/classes   下的一个   .class   中发出的那么直接  
getClass().getResource('/WEB-INF/web.xml');   否则你要  
Thread.getContextClassLoader().getResource("/WEB-INF/web.xml");   
      
   URL   url   =   getClass().getResource("/WEB-INF/web.xml");      
   //返回   :jar:file:/C:/tomcat/webapps/mywebapps.war!/WEB-INF/web.xml   ;   
      
   字符串查找   :   url.getProtocol()   返回   jar,   后面开始一直到      !/   位置的这中间部分就是文件位置。
相关:
Java程序中的配置文件的存放和读取 http://hdwangyi.javaeye.com/blog/105512
http://www.blogjava.net/crazycy/archive/2008/03/18/187056.html
http://www.jguru.com/faq/view.jsp?EID=416061
http://www.javaresearch.org/article/7499.htm