getServlet().getServletContext().getRealPath("/");与request.getRealPath(""); request.getRealPath("");不推荐使用警告。 getServlet().getServletContext().getRealPath("/");可以取代上者,都是取得应用绝对路径。 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的。这样也就无从通过文件IO 进行读取了。 那么,如何读取war包中的资源呢?答案是使用ServletContext.getResourceAsStream ("/WEB-INF/config/aa.config")方法。 原则:基本上就是尽量使用j2ee规范中的各层次classloader来获取资源,而不是试图去找文件的绝对路 径 方法:调用this.getClass().getClassLoader().getResource("/").getPath(); 获取到classes目录的全 路径 使用:在得到classes目录的全路径后再根据字符串的截取与拼装达到你的要求即可。 楼上说的对,WebLogic对WEB-INF目录下的文件是有访问控制的,最好不要放在这个目录下。 最好不要放在WEB-INF目录下。。
详细解决方案
关于request.getRealPath的失误
热度:293 发布时间:2013-07-16 22:38:05.0
相关解决方案
- request.setAttribute("list" "''");该怎么解决
- request.setAttribute("message" message)不能传int参数,该怎么处理
- RequestDispatcher rd = request.getRequestDispatcher跳转页面出现有关问题
- request.setAttribute("message" message)不能传int参数,该怎么解决
- 为何jsp request.getParameter取不到值,但request.getQueryString()却有值呢
- 求老妪能解解释Response、Request
- request.setAttribute()有关问题
- @Context HttpServletRequest request,@Context HttpServletResponse response,该如何解决
- List items = upload.parseRequest(request);替空kindeditor SpringMvc
- 急紧急十分紧急JSP,「focus="<%= JspUtil.getFirstProperty(request, null) %>」哪位高手给解释上这句话的作用?一有答案立即结帖
- struts2<s:if test=${pb.pageTotal>0}>出现有关问题 如果小弟我这样写是正确的<s:if test=#request.pb.pageT
- 如何找到http 404异常发生时的 Request URL
- request.getSession报java.lang.NullPointerException,该如何解决
- request.getCookies()方法得不到cookie,只得到一个内存cookie.解决方案
- request.getParameter会丢失一些符号的有关问题
- request.getParameter("target");是什么意思,该如何解决
- HttpServletRequest .getRealPath("/") 时 报java.lang.IllegalAccessError 异常
- struts2关于ActionContext.getContext.get("request")有关问题
- Struts2 的 Action 类里如何创建 session request response out 对象
- request.getRequestDispatcher中转页面出错
- request.getSession().getAttribute("requestPath")为什么得到的是NULL,其它的方法中可以得到URL解决思路
- RA layer request failed解决方案
- request.getRequestURL()跟request.getRequestURI()有什么区别
- request.getAttribute 传值取值有关问题
- django rest framework 入门二——Request and Response
- temp = Request.QueryString["mid"]; 如何取不了值
- Request.Url.Host 获取请求地址,该如何解决
- C#开发的网页,捕捉ystem.Web.HttpException (0x80004005): Request timed out.错误
- Request.Cookies有关问题
- Request.Browser.BrowserName 会获取搜索引擎蜘蛛的的名称吗