我之前使用以下内容在Tomcat-5.0.28及更早版本上获取我的上下文路径: String context_path = context.getRealPath(" / WEB-INF /"); 这样可以返回该文件夹的路径。 但是在OpenShift(Tomcat 6 - JBoss EWS 1.0)上,这将返回
/var/lib/openshift/53.*context_id_here*..18/jbossews/null
null应为:
work/Catalina/localhost/_/WEB-INF
如何使用JBOSS / Tomcat在OpenShift上获取WEB-INF文件夹的路径?
一些背景信息:当我在自己的Tomcat服务器上运行这个struts webapp时,我在webapps目录中部署了一个appname.war文件并等待它扩展(因为我在server.xml文件中设置了该选项) )。然后我将一个文件夹移动到webapps / appname /文件夹,其中包含我需要读取和写入的xml文件,以便我的应用程序正常工作。在OpenShift上,我使用jar xvf appname.war手动提取war文件(因为这是默认设置,我不知道如何更改它),然后移动文件夹(来自同一目录)作为我的文件夹中的war文件,在git add和push之后)工作/ Catalina / localhost / _ / WEB-INF / 这在尝试使用上面显示的路径时会导致NullPointerException。
答案 0 :(得分:0)
我认为您应该使用getServletContext或getRealPath之类的东西,并从Web根目录中读取它,而不是尝试在物理磁盘上查找文件。这样你的war文件就可以在没有问题的情况下运行。尝试查找这两个,看看是否适合您的用例。