1.关于request.getRealPath的出错
问题:
String filename = request.getRealPath(filename) //出了错
-------------------
错误信息:
The method getRealPath(String) from the type ServletRequest is deprecated
解决:
资料来源:http://bbs.chinaunix.net/viewthread.php?tid=383861
参看request.getRealPath的java doc:
Deprecated. As of Version 2.1 of the Java Servlet API, use ServletContext.getRealPath(java.lang.String) instead.
而在servlet中使用getServletContext.getRealPath()这个方法收到war 和non-war的影响,以及不同app server实现的影响,运气好的话,你常常会得到null,嘿嘿,比如你在weblogic上部署war文件,又调用这个方法..
推荐ServletContext.getResourceAsStream
参考资料:http://bbs.chinaunix.net/viewthread.php?tid=383861
2.关于serveletContext.getRealPath返回NULL和不同的app server返回不同的结果
resoure url:
http://dev2dev.bea.com.cn/bbs/thread.jspa?forumID=121&threadID=12968&start=0&tstart=0
问题:
我的应用有几个配置文本配置文件(是一些报表的模板),我放在WEB-INF下面的config目录下,我有程序
中是这样得到这个config的实际路径的
先用 serveletContext.getRealPath得到根路径,tomcat中比如是
c:\tomcat\webapp\test
然后我加上 "/WEB-INF/config/aa.config",这样得到文件的path然后进行读入,
应用在tomcat上跑是ok的,后来将war放到weblogic上,出错,原因是:
在weblogic上用getRealPath得到的是像
myserver\stage\_appsdir_test_war\test.war!\WEB-INF\config....
这样的路径,于是一直报FileNotFoundException
解决:
serveletContext.getRealPath
这个方法在不同的服务器上所获得的实现是不一样的
这种情况我也同样遇到过
建议是通过classloader来获得你配置的资源文件
context.getRealPath("/")可能返回了null,你可以输入来看看,
对一个打包的应用来说,是没有RealPath的概念的,调用getRealPath只会简单地返回null。其实,也很
好理解,一个文件被打包入了.war文件,就不存在目录结构了(虽然包中仍然存在目录结构,但这不等同
于文件系统中的目录结构)。所以,对war包中的资源是无法得到RealPath的。 Asp技~术乐园这样也就无从通过文件IO
进行读取了。
那么,如何读取war包中的资源呢?答案是使用ServletContext.getResourceAsStream
("/WEB-INF/config/aa.config")方法。
原则:基本上就是尽量使用j2ee规范中的各层次classloader来获取资源,而不是试图去找文件的绝对路
径
方法:调用this.getClass().getClassLoader().getResource("/").getPath(); 获取到classes目录的全
路径
使用:在得到classes目录的全路径后再根据字符串的截取与拼装达到你的要求即可。
WebLogic对WEB-INF目录下的文件是有访问控制的,最好不要放在这个目录下。 Asp技,术乐园
最好不要放在WEB-INF目录下。。
本文章来源于西盟软件站【www.zmke.com】详细地址:http://www.zmke.com/article/182/184/jsp/2009/2009082232876.html
详细解决方案
Tomcat/Weblogic上的路径有关问题
热度:172 发布时间:2012-11-06 14:07:00.0
相关解决方案
- apache-tomcat-7.0.32下的html页面不能访问有关问题
- webLogic,该怎么解决
- weblogic API 怎么上载
- Server Tomcat v7.0 Server不能起步
- tomcat 部署出现以上提示信息 求解 急
- weblogic 12c 怎么配置一般数据源
- Eclipse + Tomcat Debug時很慢,该怎么解决
- JDOM ,windows7 ,tomcat 哪位高手的bug
- tomcat 配置https的有关问题
- 请问上Linux平台上怎么搭建JDK \TOMCAT\MYSQL
- Tomcat 6.0 servlet 中文字符乱码解决思路
- 求教:tomcat 的 perm gen设立
- 启动apache-tomcat-5.5.33出现有关问题
- tomcat 配置有关问题
- tomcat 用Bootstrap直接启动一个服务,其他web工程如何调用
- Tomcat 出现以上异常 请高手帮忙看一上
- TOMCAT 5.5 浏览器输入http://localhost:8080/工程名/页面名 报错404解决方法
- TOMCAT 5。0运行 异常信息Apache Xerces (or Java 1.5) for full XSD support
- tomcat 起动报错
- []TOMCAT 上载文件时提示空指针错误 上来来的XLS是空白的
- Server Apache Tomcat v6.0.35 at localhost failed to start
- 小弟我用JSP+ACCESS+tomcat 5.0 JDK1.4做的一个网站
- tomcat 导入不了自定义类的有关问题
- struts1 myeclipse tomcat 从页面失去乱码
- tomcat+hibernate配置jndi数据源的有关问题
- tomcat 503异常
- weblogic 调度项目出错
- tomcat 输入IP跟输入localhost有什么区别
- tomcat 80端口有关问题
- tomcat 内存溢出,该怎么解决