【发布时间】:2017-09-02 22:09:39
【问题描述】:
我在 Tomcat 服务器上部署 War 文件时遇到了问题。 我的Tomcat Server配置如下:
我的部署步骤:
- 我在 Eclipse Kepler 中创建了一个 WAR 文件(Windows 7 64 位,未使用 Maven)。
- 使用 Tomcat Web 应用程序管理器上传。
- 点击部署。
Tomcat 在 tomcat/webapps 中解压 WAR 文件并抛出 NullPointerException。它缺少一些应该导入到项目中才能正常工作的文件。
当我在 Eclipse 中工作时,作为这些文件的源,我在服务器设置中给出了一个工作区路径,并添加了 Eclipse 默认提供的 wtpwebapps 文件夹。所以我的完整路径如下所示:
C:\Users\myUserName\kepler\workspace.metadata.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\myProjectName\WEB-INF\classes\project\fdsProject\FDS.prj
现在,当我部署项目时,它位于 webapps 文件夹中,而不是 wtpwebapps 中,如果我尝试在浏览器中启动,它会显示 NullPointerException。但是只要我将 wtpwebapps 文件夹从我的工作区复制到 webapps 附近的 tomcat 安装文件夹,我的项目就会成功启动。
这意味着我不能在另一台服务器上启动我的项目,只能部署一个独立的 WAR 文件。我必须手动将带有我的项目的 wtpwebapps 添加到 tomcat 服务器安装文件夹中。如何优化它并仅使用部署的 WAR 文件启动项目? 谢谢!
编辑
【问题讨论】:
-
感谢您的评论,但我发布了我的服务器配置的屏幕截图,此问题中没有显示代码
-
什么是 NPE 堆栈跟踪?您是如何引用这些文件的?
-
使用绝对路径,从catalina base开始:
private static String data_path = new File(System.getProperty("catalina.base")).getAbsolutePath()+"\\webapps\\myProjectName\\WEB-INF\\classes\\project\\fdsProject\\"等。 -
你的问题就在那里。
-
new File(System.getProperty("catalina.base")).getAbsolutePath()给出了 tomcat 安装文件夹的路径,webapps 和我的 WAR 文件所在的位置与我的计算机设置无关。究竟哪里有问题?
标签: java eclipse jsp tomcat jakarta-ee