我在Tomcat服务器上部署War文件时遇到了问题。 我的Tomcat服务器配置如下:
我的部署步骤:
Tomcat在tomcat / webapps中解压缩WAR文件并抛出NullPointerException。它缺少一些应该导入到项目中的文件才能正常工作。
当我在Eclipse中工作时,作为这些文件的源,我提供了一个工作空间路径,在服务器设置中给出并添加了wtpwebapps文件夹,默认情况下由Eclipse提供。所以我的完整路径如下:
C:\ Users \用户名为myUsername \开普勒\ workspace.metadata.plugins \ org.eclipse.wst.server.core \ TMP0 \ wtpwebapps \ myProjectName \ WEB-INF \类\项目\ fdsProject \ FDS.prj
现在,当我部署项目时,它位于 webapps 文件夹中,而不是 wtpwebapps ,如果我尝试在浏览器中启动,则会显示NullPointerException。但是,只要我将wtpwebapps文件夹从我的工作区复制到tomapp安装文件夹,靠近webapps,我的项目就会成功启动。
这意味着我无法在另一台服务器上启动我的项目,只需部署一个独立的WAR文件。我必须手动将我的项目中的wtpwebapps添加到tomcat服务器安装文件夹中。如何在部署WAR文件的情况下对其进行优化并启动项目? 谢谢!
修改
答案 0 :(得分:0)
停止Tomcat服务器
在设置视图Tomcat Server settings in Eclipse -> Server
Locations
中,选中Use Tomcat Installation(...)
现在,您可以更改Deploy Path
,如果需要webapps
,则输入它。
修改强>
以下值控制tomcat如何处理war文件
autoDeploy="true"
unpackWARs="true"
只需在server.xml
文件中搜索这些值,然后根据需要修改值。
答案 1 :(得分:0)
如果您希望能够将应用程序部署为WAR文件,则需要相对于应用程序本身引用其中的所有内容,而不是使用绝对文件路径,如果可以的话,甚至不是文件路径。如果您的代码需要java.io.File
,请重写它。关键是你不关心 的事情,你只关心如何获取他们的内容。对于Servlet,您可以通过在正确的类或类加载器上调用getResourceAsStream()
来阅读Web应用程序类路径中的任何内容。