【问题标题】:Can´t deploy my .war file in tomcat 7 using ANT and via the tomcat-manager无法使用 ANT 和通过 tomcat-manager 在 tomcat 7 中部署我的 .war 文件
【发布时间】:2012-02-04 08:44:39
【问题描述】:

在我的 tomcat 7 Web 服务器中部署我的 Web 应用程序时遇到问题。我尝试通过 ant 部署我的 war 文件,但出现以下错误:

 java.lang.NoClassDefFoundError: Could not initialize class java.nio.file.TempFileHelper
 [java]     at java.nio.file.Files.createTempFile(Unknown Source)
 [java]     at sun.net.www.protocol.jar.URLJarFile$1.run(Unknown Source)
 [java]     at sun.net.www.protocol.jar.URLJarFile$1.run(Unknown Source)
 [java]     at java.security.AccessController.doPrivileged(Native Method)
 [java]     at sun.net.www.protocol.jar.URLJarFile.retrieve(Unknown Source)
 [java]     at sun.net.www.protocol.jar.URLJarFile.getJarFile(Unknown Source)
 [java]     at sun.net.www.protocol.jar.JarFileFactory.get(Unknown Source)
 [java]     at sun.net.www.protocol.jar.JarURLConnection.connect(Unknown Source)
 [java]     at sun.net.www.protocol.jar.JarURLConnection.getJarFile(Unknown Source)
 [java]     at org.apache.catalina.startup.TldConfig.tldScanJar(TldConfig.java:507)
 [java]     at org.apache.catalina.startup.TldConfig.access$100(TldConfig.java:59)
 [java]     at org.apache.catalina.startup.TldConfig$TldJarScannerCallback.scan(TldConfig.java:332)
 [java]     at org.apache.tomcat.util.scan.StandardJarScanner.process(StandardJarScanner.java:234)
 [java]     at org.apache.tomcat.util.scan.StandardJarScanner.scan(StandardJarScanner.java:159)
 [java]     at org.apache.catalina.startup.TldConfig.execute(TldConfig.java:306)
 [java]     at org.apache.catalina.startup.TldConfig.lifecycleEvent(TldConfig.java:585)
 [java]     at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
 [java]     at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:89)
 [java]     at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:4974)
 [java]     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
 [java]     at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:812)
 [java]     at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:787)
 [java]     at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:607)
 [java]     at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:925)
 [java]     at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:723)
 [java]     at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:470)
 [java]     at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1343)
 [java]     at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:294)
 [java]     at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
 [java]     at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:89)
 [java]     at org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1235)
 [java]     at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1393)
 [java]     at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1403)
 [java]     at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1382)
 [java]     at java.lang.Thread.run(Unknown Source)

Web 应用程序的文件夹是在我的 tomcat webapps 文件夹中创建的,但是当尝试通过以下方式访问应用程序时:

http://localhost:8080/Natura_WEB

我收到一个 404 错误,提示应用程序不存在。

我还尝试通过 tomcat-manager 部署我的应用程序,它说应用程序已正确部署,但它没有出现在 tomcat 应用程序列表中,但该文件夹也在 webapps 目录中创建,当我尝试在浏览器中访问我得到与以前相同的错误。

我知道这绝对是一个 tomcat 故障,因为我尝试在另一台计算机上部署完全相同的 war 文件并且它运行良好。

关于如何解决此问题的任何建议?

【问题讨论】:

    标签: ant tomcat7 web-deployment


    【解决方案1】:

    它没有被正确部署,因为它无法找到依赖 jars。

    找不到这个类“java.nio.file.TempFileHelper”

    尝试定位该类,找出哪个 jar 包含该文件。

    然后将该 jar 放入 WEB-INF/lib 并尝试再次部署。它应该工作。

    【讨论】:

    • 奇怪的是为什么同一个war文件可以在一台机器上完美运行,而在另一台机器上却不行?这和安装的JDK有关吗?
    • 可能是该机器的通用 tomcat lib 目录,其中包含 jar 并且能够将类定位到全局上下文中。检查该机器的通用 tomcat 库是否包含该 jar。
    猜你喜欢
    • 2014-02-01
    • 2012-09-28
    • 1970-01-01
    • 1970-01-01
    • 2011-07-03
    • 1970-01-01
    • 2012-12-05
    • 1970-01-01
    相关资源
    最近更新 更多