如果没有wtpwebapps文件夹

时间:2017-04-07 13:35:46

标签: java eclipse jsp tomcat java-ee

我在Tomcat服务器上部署War文件时遇到了问题。 我的Tomcat服务器配置如下:

tomcat config

我的部署步骤:

  1. 我在Eclipse Kepler中创建了一个WAR文件(Windows 7 64位,不使用Maven)。
  2. 使用Tomcat Web应用程序管理器上传它。
  3. 点击部署。
  4. 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文件的情况下对其进行优化并启动项目? 谢谢!

    修改

    我的项目结构如下所示: project structure

2 个答案:

答案 0 :(得分:0)

  1. 停止Tomcat服务器

  2. 在设置视图Tomcat Server settings in Eclipse -> Server Locations中,选中Use Tomcat Installation(...)

  3. 现在,您可以更改Deploy Path,如果需要webapps,则输入它。

  4. 修改

    以下值控制tomcat如何处理war文件

    autoDeploy="true"
    unpackWARs="true"
    

    只需在server.xml文件中搜索这些值,然后根据需要修改值。

答案 1 :(得分:0)

如果您希望能够将应用程序部署为WAR文件,则需要相对于应用程序本身引用其中的所有内容,而不是使用绝对文件路径,如果可以的话,甚至不是文件路径。如果您的代码需要java.io.File,请重写它。关键是你不关心 的事情,你只关心如何获取他们的内容。对于Servlet,您可以通过在正确的类或类加载器上调用getResourceAsStream()来阅读Web应用程序类路径中的任何内容。

请参阅getResourceAsStream() vs FileInputStream