我的tomcat Web应用程序上传图像并将其保存在context文件夹之外,以确保安全。我在本地计算机上测试了代码,它运行完美。

当我将代码托管在OpenShift上时,在下面突出显示的行上出现了空指针异常:

public void init() throws ServletException {
    // get name of images directory
    String imagesPath = getServletContext().getInitParameter(
            PARAM_UPLOAD_IMAGE_PATH);

    //get path to context root directory
    String contextRoot = getServletContext().getRealPath("/");



    //remove trailing '/'
    contextRoot = contextRoot.substring(0,contextRoot.length() - 1);//NULL POINTER EXCEPTON

    //get path of directory outside root, where images will be saved.
    String outsideRoot = contextRoot.substring(0, contextRoot.lastIndexOf("/"));

    uploadPath = outsideRoot + File.separator + imagesPath;
}


我不明白问题是什么,因为代码在我的机器上可以正常工作。托管站点是否不允许您在上下文根目录之外保存文件?有没有解决的办法?谢谢你的帮助!

最佳答案

您实际上对OpenShift拥有写权限的唯一位置是〜/ app-root / data和/ tmp。

应用程序根目录/数据有一个环境变量,应在代码$ OPENSHIFT_DATA_DIR中使用。请更改您的代码以写入此目录。

关于tomcat - Tomcat WebApp:在OpenShift上在上下文根之外存储图像文件时出错,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16739471/

10-10 16:30