0

I'm working on a Java web application that needs to store uploaded files in one directory, and an embedded Neo4j database in another directory. I'm deploying the warfile to Tomcat to serve the application, and the application needs to be runnable under Tomcat in either Linux or Windows.

Where exactly should I be putting these two directories on the host system's filesystem?

I'm confused since I'm accustomed to storing information in databases specified via a URL, etc. Thanks for the help.

4

1 回答 1

1

webapp 是否有可能同时运行两个或多个实例,例如在同一个 Tomcat 中具有两个 /path 名称?

Java 有系统属性user.home,你总是可以在它上面创建一个子文件夹。当前用户是运行 Tomcat 服务器的用户。将属性打印到 sysout 以进行调试。

在运行时读取 webapp 名称,您可以使用 servletContext.getRealPath("/") 函数。您将获得 $tomcat/webapps/mywebapp 的文件名路径并使用最后一个文件夹条目。在 web.xml 中定义 ServletContextListener 以便您可以在启动时读取 webapp 名称。

使用命名约定${user.home}/tomcat/${webappname}/并存储您喜欢的任何文件。

或者在 web.xml 文件中定义一个 webapp context-param 变量,让部署者创建一个合适的文件夹。

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

于 2013-10-15T15:28:46.427 回答