我正在开发一个Java Web应用程序,它需要将上传的文件存储在一个目录中,并将嵌入的Neo4j数据库存储在另一个目录中。我正在将warfile部署到Tomcat来为应用程序提供服务,并且应用程序需要在Linux或Windows下的Tomcat下运行。
我应该把这两个目录放在主机系统的文件系统上?
我很困惑,因为我习惯于将信息存储在通过URL等指定的数据库中。感谢您的帮助。
答案 0 :(得分:1)
Web应用程序是否有可能同时运行两个或更多实例,例如在具有两个/路径名的同一个Tomcat中?
Java具有系统属性 user.home ,您始终可以在其上创建子文件夹。当前用户是运行Tomcat服务器的用户。将属性打印到sysout以进行调试。
在运行时读取webapp名称可以使用servletContext.getRealPath(“/”)函数。您将获得$ tomcat / webapps / mywebapp的文件名路径并使用上一个文件夹条目。在web.xml中定义ServletContextListener,以便在启动时读取webapp名称。
使用命名约定 $ {user.home} / tomcat / $ {webappname} / 并存储您喜欢的任何文件。
或者在web.xml文件中定义webapp context-param变量,让deployer创建一个合适的文件夹。
http://docs.oracle.com/javase/tutorial/essential/environment/sysprop.html
http://docs.oracle.com/javaee/6/api/javax/servlet/ServletContextListener.html
http://docs.oracle.com/javaee/6/api/javax/servlet/ServletContext.html#getInitParameter%28java.lang.String%29