Java 调试不会在 windows 上使用 netbeans 展开 WAR 文件

Java Debug won't unfold the WAR file On windows with netbeans

我有一个有点复杂的问题需要解释;

我有一个在 Netbeans 上编写的项目,将用作 Intranet 应用程序。这是一个动态的网络应用程序。它里面有一些 File.IO 操作。我的目标是在 index.html 所在的目录中创建一些文件。所以我尝试让程序通过以下代码找到目录:

     Session.getServletContext().getRealPath("Index.jsp");

但是由于 java 版本它不起作用所以我使用了:

     Session.getServletContext().getContextPath();

现在它在调试时显示正确的路径但不是完整路径。调试后,我可以在 c:/ 下找到我的文件,而不是在 index.html 目录下,甚至在我的项目文件夹附近 :)

所以我查看了 webapps 下 Programfiles 下的 Apache 文件夹,发现我的应用程序文件夹不在那里。它并没有展开 war 文件,实际上它似乎虚拟地打开了它并在临时文件夹下创建了一些编号的 html 文件。如何让我的 Tomcat 在 linux 系统上像 Tomcat 一样工作并展开 war 文件并找到正确的文件夹(主 Web 文件夹)和读写文件、文件夹等

此外,我想在下面添加 server.xml 解压配置:

          <Host name="localhost"  appBase="webapps"
        unpackWARs="true" autoDeploy="true">

即使你能给我一个线索,我也会很高兴。 谢谢, 卡安

我解决了问题。但是还有很多工作要做。所以我在这里一一写下;

  1. Session.getServletContext().getRealPath("Index.jsp"); 不是真的。但不是主要问题。在括号中,我们必须写一个文件夹而不是一个文件来找到父文件夹。更正此后,它将再次 return null 。因为 Java EE 7 不支持 getRealPath() 方法。但最后这将通过更改版本来解决。

  2. 在 Netbeans IDE 上,在工具栏,工具 >> 服务器,我删除了 tomcat 服务器。并且还要卸载自带的Apache Tomcat8 Netbeans8,因为我从 论坛。

  3. 我从 apache 的官方网站下载 Apache Tomcat7 和 已安装的服务。

  4. 我为管理员权限配置了 tomcat-users.xml 配置文件。

  5. 然后我从同一工具栏在 netbeans 添加 Tomcat7 服务器 (工具 >> 服务器)

  6. 我看到的是项目里没有服务器。我进去了 project properties ,从菜单 > 运行 和 Server 组合框 空的。因为我使用的是 Java EE7 并且 Tomcat7 至少需要 Java EE6。所以我需要更改 java ee 版本。

怎么办: 单击项目选项卡附近的文件选项卡。在 nbproject 文件夹 select j2ee.platform 下,对于 Tomcat7,将平台更改为 1.6(Tomcat6 > Jave EE 1.5)。比在项目上做一个 "clean and build"。 现在服务器将出现在 Project > properties > 运行 > Servers

  1. 在那之后我遇到了另一个问题:(你也可能:)) Tomcat 来自 NetBeans 的日志说:

-" '127.0.0.1*' 未被识别为内部或外部命令 "

更正: Error starting Tomcat from NetBeans - '127.0.0.1*' is not recognized as an internal or external command