`

追了getServletContext().getRealPath("/");返回null的问题

阅读更多

今天把程序部署到服务器,发现异常,FileNotFound异常,很快定位到getServletContext().getRealPath("/");返回空的问题。这个问题通常是传递的虚拟路径不对或者使用war包导致的。而我的程序传递的路径肯定正确,并且部署的时候对.war包做了解压。对这个问题上网搜搜了n编,始终找不到问题所在,而部署子本机是完全正确的。

仔细梳理了一下找到了一个线索:我部署到服务器的时候,我等了半天,服务器没帮我把war解压,于是自己把war解压了,而解压之后没有把war包删掉,是不是服务器启动的程序是war包里面的,而不是我解压之后的呢?于是我就rm掉war包,然后开始测试,结果结果同样如此,感觉比较失望,失望之时想起了服务器可能有编译缓存,于是重启服务器,问题终于解决。

 

解决问题的还是要细心梳理清楚,然后定位到问题所在,最后得到解决办法。

 

0
0
分享到:
评论
2 楼 fuliang 2009-12-24  
stevensinclair 写道
用的什么容器?
war包放着按理也不应该有问题。
一般容器都会检测被解压的工程

我也是这么想的,默认会自动解压,但服务器上部署的tomcat不知道怎么配置的,导致了这个问题。
1 楼 stevensinclair 2009-12-24  
用的什么容器?
war包放着按理也不应该有问题。
一般容器都会检测被解压的工程

相关推荐

    web.xml中的listen

    - 在`init`方法中,首先获取到配置文件的路径,并根据实际情况处理路径问题,然后读取配置文件。 通过上述分析可以看出,`web.xml`中的监听器不仅可以帮助我们加载Spring配置文件,还可以实现更灵活的功能,如监听...

    在Struts 2中实现文件上传

    String realPath = ServletActionContext.getServletContext().getRealPath("/"); File targetFile = new File(realPath + "uploads/" + getFileName()); InputStream is = null; OutputStream os = null; try ...

    fileupload

    String uploadDirectory = this.getServletContext().getInitParameter("UploadDirectory"); if(!uploadDirectory.contains(":")) { String rootpath = request.getRealPath(request.getRequestURI()); ...

    jsp页面创建文件夹

    可以使用getServletContext().getRealPath("/")方法来获取Web应用的根路径。例如: String Save_Location=getServletContext().getRealPath("/")+"excel\\"; 这里的Save_Location变量将存储Web应用的根路径加上...

    上传文件描述-commons-fileupload

    ServletContext context = getServletContext(); realUploadPath = context.getRealPath(uploadPath); realTempPath = context.getRealPath(tempPath); // 如果文件夹不存在,则创建 if (!new File...

    fileutil工具类 处理文件流工具

    fileutil工具类 处理文件流工具 private static File file; /** * 判断文件是否存在 * * @param path * 文件路径 ...request.getServletContext().getRealPath(path)); return file.exists(); }

    RSA+bcpkix-jdk15.zip

    //返回加密后的字符串 return encryptedString(key, encodeURIComponent(paramStr)); }) 复制代码其中的加密系数可以自定义,这里为:8246a46f44fc4d961e139fd70f4787d272d374532f4d2d9b7cbaad6a15a8c1301319aa...

    SpringMVC 单文件上传与多文件上传实例

    String path = session.getServletContext().getRealPath("images"); // 得到文件的原始名称,如:美女.png String fileName = img.getOriginalFilename(); // 通过文件的原始名称,可以对上传文件类型做限制,...

    JavaWeb_servlet(10)_ 通过 ServletContex 获得根目录下的文件路径

    不过,需要注意的是,由于安全性和可移植性的考虑,`getRealPath()`在某些情况下可能返回null,尤其是在Tomcat等现代容器中,当应用被部署为WAR文件时。此时,我们可能需要寻找其他方式来处理文件,例如使用`...

    Struts2 实现文件简单上传

    File file = new File(ServletActionContext.getServletContext().getRealPath("/uploads") + File.separator + "example.txt"); result.setOutputStream(new FileInputStream(file)); result.setContentType(...

    开发中遇到的问题

    String savePath = getServletContext().getRealPath("userheads"); File targetFile = new File(savePath); if (!targetFile.exists()) { targetFile.mkdirs(); } ``` #### 数据库操作与管理 - **SQL分页...

    Java web图片验证码.docx

    String mainImg = req.getServletContext().getRealPath("/upfile/Koala.jpg"); String logoImg = req.getServletContext().getRealPath("/upfile/logo.JPG"); // 加载图片资源 ImageIcon mainIcon = new ...

    jsp创建文件源码 jsp创建文件源码 jsp创建文件源码

    这里的`getServletContext().getRealPath("/")`方法获取的是当前Web应用的根目录实际物理路径,即服务器上存放该应用的具体位置。通过这种方式可以确保文件被保存在正确的目录下。 #### 2. 检查并创建目录 ```java ...

    linux下shell脚本实现数据的导出

    String shfilepath = ServletActionContext.getServletContext().getRealPath("/"+"download/shell/backup.sh"); String exp = "sh " + shfilepath; Runtime rt = Runtime.getRuntime(); Process processexp = null;...

    fileupload上传代码与txt文件取值实例

    File targetFile = new File(request.getSession().getServletContext().getRealPath(targetFolder)); // 获取项目路径下的临时目录 File tempFile = new File(request.getSession().getServletContext()....

    log4j.properties文件放置在其它目录下

    String prefix = getServletContext().getRealPath("/"); String file = getInitParameter("log4jConfigLocation"); if (file != null) { PropertyConfigurator.configure(prefix + file); } } 在 web.xml 中...

    JFreeChart教程

    String url = request.getSession().getServletContext().getRealPath("/page/wrm/analyse/jfreeChart/car.jpg"); try { image = ImageIO.read(new File(url)); } catch (IOException e) { e.printStackTrace(); }...

Global site tag (gtag.js) - Google Analytics