MDA/MDD/TDD/DDD/DDDDDDD
posts - 536, comments - 111, trackbacks - 0, articles - 0
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

classloader笔记

Posted on 2008-12-10 20:59 leekiang 阅读(188) 评论(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

只有注册用户登录后才能发表评论。


网站导航: