各位大神帮帮忙,我在项目迁移的过程中遇到了一个问题。tomcat下运行正常,weblogic下报错。问题应该是在这里SAXBuilder builder = new SAXBuilder(false);
String path = this.getServletContext().getRealPath("/")+ "/menu/tree.xml";
Document doc = builder.build(path);
tomcat下path打印出来是  D:\testworkspace\项目名\WebRoot\/menu/tree.xml ,(感觉怪异,但确实是这样)
weblogic下path为       C:\bea\user_projects\domains\base_domain\null\menu\tree.xml  (现在变成null了)
所以weblogic下会报FileNotFound异常,有谁遇到过这种问题么? 求帮助

解决方案 »

  1.   

    楼主,你这个方法在Weblogic下面是没用的,你要用哥他ResourceAsStream("这里就是tree.xml的路径");话说,你是不是打了war包的呢?
      

  2.   

    你项目在 weblogic控制台发布了吗
      

  3.   

    是打了war包,这段代码是在servlet中的,谢谢yexiongMYBH,我试一下 ResourceAsStream
      

  4.   

     终于搞定了,在servlet中用this.getClass().getResourceAsStream()这种方式不行,额,本人试过不行,得用 ServletContext context = this.getServletContext(); 然后context.getResourceAsStream();   还有呢,资源文件或xml神马的最好放在src目录下,这样 InputStream ins = context.getResourceAsStream("/WEB-INF/classes/tree.xml");才能获得到,蛋疼。不过解决了之后好爽,呵呵。测试了,tomcat 与weblogic下都可以
      

  5.   


    本来就是要从Servlet上下文中去得到这个Resource的嘛。。你从Servlet的这个Class里面,怎么去得到呢,,对吧~~是我没表达清楚啦,,不过最后的这个方法肯定是对的,对吧~~呵呵,,以后记得哦,getResourceAsStream();