【问题标题】:Changes to java code not being reflected in updated WAR for web project对 Java 代码的更改未反映在更新的 WAR for Web 项目中
【发布时间】:2015-10-18 21:27:44
【问题描述】:

我有一个同事制作的 Java Web 应用程序。我一直在尝试更改项目的代码并将同一个项目部署到另一个位置。

我一直在做以下事情:

  1. 对 Java 源代码进行必要的更改并保存更改
  2. 构建网络项目
  3. 使用 Apache Tomcat 部署新生成的 WAR 文件

但是,当我在浏览器中打开已部署的 Web 应用程序时,对代码所做的更改并未反映出来。

我已尝试清理项目并再次构建,重新启动服务器,重新加载 WAR,删除相关的 webapps 文件夹。但它仍然保持不变。我还查看了各个 CLASS 文件的“最后修改”时间,时间戳也显示这些类已更新。

我运行 build.xml 文件来生成 WAR。 build.xml 文件如下所示:

<project name="QA-SV-Web-regression" basedir="." default="default">

<target name="default" depends="buildwar,deploy"></target>

<target name="buildwar">
    <war basedir="war" destfile="WebReg.war" webxml="war/WEB-INF/web.xml">
        <exclude name="WEB-INF/**" />
        <webinf dir="war/WEB-INF/">
            <include name="**/*.jar" />
        </webinf>
    </war>
</target>

<target name="deploy">
    <copy file="WebReg.war" todir="." />
</target> 

请注意:我没有使用 eclipse 中的 tomcat。它作为一个独立的应用程序运行。

我无法弄清楚如何解决此问题。请帮忙。


更新:每当我构建项目时,都会更新 CLASS 文件。我认为该项目正在生成有效的输出。但是,WAR 仍然没有更新网页内容。

【问题讨论】:

  • 尝试cleaning 项目然后构建。
  • @karthik,我试过了。没用。
  • 你之前有没有通过eclipse或者其他IDE使用过这个服务器?
  • 构建脚本步骤是否也重新构建 jars,或者您是否需要单独的步骤。彻底了解构建脚本 - 从例如“ant -p”开始。
  • @NaveenRamawat,是的,我之前使用过 Eclipse 的服务器,但没有用它部署任何项目。

标签: java eclipse tomcat gwt


【解决方案1】:

在您的 build.xml 中添加 clean,compile 目标,并让您的 buildwar 目标依赖于它们(如果它们已经不存在)。例如

<target name="buildwar" depends="clean,compile">
 ....
 </target>

 <target name="clean" >
 ....
 </target>

 <target name="compile" >
 ....
 </target>

【讨论】:

  • 在 WAR 文件中,您有网页内容(如 html 和 javascript)和 java 类。哪里没有反映变化,java 类或 webcontent ?您是否打开了 WAR 文件并检查了更改是否反映在其中?
  • 是的。我打开了 WAR 文件。这些变化反映在课程中。但是当我部署战争时,我的应用程序没有视觉上的变化。
  • 我已经修改了源代码以对应用程序进行一些视觉更改。部署后,看不到这些更改,我看到了不应该存在的旧设置。
  • 在这种情况下刷新缓存。一般这类问题可以通过刷新缓存或者重启应用服务器来解决。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-12-26
  • 1970-01-01
  • 1970-01-01
  • 2014-06-16
  • 1970-01-01
  • 2021-04-28
  • 1970-01-01
相关资源
最近更新 更多