HTTP 404 TOMCAT war 部署 ANT
HTTP 404 TOMCAT war deployment ANT
我正在使用 ANT 工具构建一个 war 文件,一旦构建它就会被复制到 tomcat webapps 文件夹。但是,tomcat 服务器在执行后显示 404 错误。
错误:
Ant 构建部分:
<property name="deployment.dir" location="./a222rc/server" />
<property name="BUILD_ALL" location="./a222rc/build/" />
<property name="webxml.path" location="${deployment.dir}/WEB-INF/web.xml" />
<property name="tomcat" value="D:/Users/user/apache-tomcat-8.5"/>
<property name="tomcat.deployment" value="${tomcat}/webapps" />
<property name="tomcat.bin" value="${tomcat}/bin" />
<target name="create_war" description="Generates war for complete module">
<war destfile="${BUILD_ALL}/eCollection_rc.war" webxml="${webxml.path}">
<fileset dir="${deployment.dir}">
<exclude name="**/classes12.jar" />
</fileset>
<fileset dir="${help.dir}" />
</war>
<antcall target="deployTarget"/>
</target>
<!-- ******************* Deploy and start*************************** -->
<target name="deployTarget">
<copy file="${BUILD_ALL}/mybuild.war" todir="${tomcat.deployment}"/>
<antcall target="startTomcat"/>
</target>
<target name="startTomcat">
<exec executable="${tomcat.bin}/startup.bat"/>
</target>
<target name="stopTomcat">
<exec executable="${tomcat.bin}/shutdown.bat"/>
</target>
Web.xml
<servlet>
<servlet-name>ControlerServlet</servlet-name>
<servlet-class>a222rc.ControlerServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ControlerServlet</servlet-name>
<url-pattern>/servlet/ControlerServlet</url-pattern>
</servlet-mapping>
la classe controlerServlet 位于 WEB-INF/classes/a222rc.
Catalina 日志:
[main] org.apache.catalina.startup.VersionLoggerListener.log Version du serveur: Apache Tomcat/8.5.47
[main] org.apache.catalina.startup.VersionLoggerListener.log Serveur compilé: Oct 7 2019 13:30:46 UTC
[main] org.apache.catalina.startup.VersionLoggerListener.log Version du serveur: 8.5.47.0
[main] org.apache.catalina.startup.VersionLoggerListener.log Nom de l'OS: Windows 10
[main] org.apache.catalina.startup.VersionLoggerListener.log Version de l'OS: 10.0
[main] org.apache.catalina.startup.VersionLoggerListener.log Architecture: amd64
[main] org.apache.catalina.startup.VersionLoggerListener.log Répertoire de Java: C:\Program Files\Java\jre1.8.0_231
[main] org.apache.catalina.startup.VersionLoggerListener.log Version de la JVM: 1.8.0_231-b11
[main] org.apache.catalina.startup.VersionLoggerListener.log Fournisseur de la JVM: Oracle Corporation
[main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE: D:\Users\username\apache-tomcat-8.5.47
[main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME: D:\Users\username\apache-tomcat-8.5.47
[main] org.apache.catalina.startup.VersionLoggerListener.log Argument de la ligne de commande: -Djava.util.logging.config.file=d:\Users\username\apache-tomcat-8.5.47\conf\logging.properties
[main] org.apache.catalina.startup.VersionLoggerListener.log Argument de la ligne de commande: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
[main] org.apache.catalina.startup.VersionLoggerListener.log Argument de la ligne de commande: -Djdk.tls.ephemeralDHKeySize=2048
[main] org.apache.catalina.startup.VersionLoggerListener.log Argument de la ligne de commande: -Djava.protocol.handler.pkgs=org.apache.catalina.webresources
[main] org.apache.catalina.startup.VersionLoggerListener.log Argument de la ligne de commande: -Dignore.endorsed.dirs=
[main] org.apache.catalina.startup.VersionLoggerListener.log Argument de la ligne de commande: -Dcatalina.base=d:\Users\username\apache-tomcat-8.5.47
[main] org.apache.catalina.startup.VersionLoggerListener.log Argument de la ligne de commande: -Dcatalina.home=d:\Users\username\apache-tomcat-8.5.47
[main] org.apache.catalina.startup.VersionLoggerListener.log Argument de la ligne de commande: -Djava.io.tmpdir=d:\Users\username\apache-tomcat-8.5.47\temp
[main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent La librairie Apache Tomcat Native basée sur APR qui permet des performances optimales dans les environnements de production n'a pas été trouvée sur le java.library.path: [C:\Program Files\Java\jre1.8.0_231\bin;C:\windows\Sun\Java\bin;C:\windows\system32;C:\windows;C:/Program Files/Java/jdk1.8.0_231/bin/../jre/bin/server;C:/Program Files/Java/jdk1.8.0_231/bin/../jre/bin;C:/Program Files/Java/jdk1.8.0_231/bin/../jre/lib/amd64;C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\windows\system32;C:\windows;C:\windows\System32\Wbem;C:\windows\System32\WindowsPowerShell\v1.0\;C:\windows\System32\OpenSSH\;C:\Program Files\TortoiseSVN\bin;d:\Users\username\AppData\Local\Microsoft\WindowsApps;d:\Users\username\apache-tomcat-8.5.47\lib;;C:\windows\System32;;.]
[main] org.apache.coyote.AbstractProtocol.init Initialisation du gestionnaire de protocole ["http-nio-8080"]
[main] org.apache.tomcat.util.net.NioSelectorPool.getSharedSelector Using a shared selector for servlet write/read
[main] org.apache.coyote.AbstractProtocol.init Initialisation du gestionnaire de protocole ["ajp-nio-8009"]
[main] org.apache.tomcat.util.net.NioSelectorPool.getSharedSelector Using a shared selector for servlet write/read
[main] org.apache.catalina.startup.Catalina.load Initialization processed in 510 ms
[main] org.apache.catalina.core.StandardService.startInternal Démarrage du service [Catalina]
[main] org.apache.catalina.core.StandardEngine.startInternal Starting Servlet Engine: Apache Tomcat/8.5.47
[localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployWAR Déploiement de l'archive [D:\Users\username\apache-tomcat-8.5.47\webapps\eCollection_rc.war] de l'application web
[localhost-startStop-1] org.apache.catalina.startup.ExpandWar.expand Un répertoire décompressé [D:\Users\username\apache-tomcat-8.5.47\webapps\eCollection_rc] a été trouvé avec une date de dernière modification qui ne correspond pas au WAR associé, il sera effacé
[localhost-startStop-1] org.apache.jasper.servlet.TldScanner.scanJars Au moins un fichier JAR a été analysé pour trouver des TLDs mais il n'en contenait pas, le mode "debug" du journal peut être activé pour obtenir une liste complète de JAR scannés sans succès; éviter d'analyser des JARs inutilement peut améliorer sensiblement le temps de démarrage et le temps de compilation des JSPs
[localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployWAR Le déploiement de l'archive de l'application web [D:\Users\username\apache-tomcat-8.5.47\webapps\eCollection_rc.war] s'est terminé en [661] ms
[localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Déploiement du répertoire d'application web [D:\Users\username\apache-tomcat-8.5.47\webapps\docs]
[localhost-startStop-1] org.apache.jasper.servlet.TldScanner.scanJars Au moins un fichier JAR a été analysé pour trouver des TLDs mais il n'en contenait pas, le mode "debug" du journal peut être activé pour obtenir une liste complète de JAR scannés sans succès; éviter d'analyser des JARs inutilement peut améliorer sensiblement le temps de démarrage et le temps de compilation des JSPs
[localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Le déploiement du répertoire [D:\Users\username\apache-tomcat-8.5.47\webapps\docs] de l'application web s'est terminé en [204] ms
[localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Déploiement du répertoire d'application web [D:\Users\username\apache-tomcat-8.5.47\webapps\examples]
[localhost-startStop-1] org.apache.jasper.servlet.TldScanner.scanJars Au moins un fichier JAR a été analysé pour trouver des TLDs mais il n'en contenait pas, le mode "debug" du journal peut être activé pour obtenir une liste complète de JAR scannés sans succès; éviter d'analyser des JARs inutilement peut améliorer sensiblement le temps de démarrage et le temps de compilation des JSPs
[localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Le déploiement du répertoire [D:\Users\username\apache-tomcat-8.5.47\webapps\examples] de l'application web s'est terminé en [380] ms
[localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Déploiement du répertoire d'application web [D:\Users\username\apache-tomcat-8.5.47\webapps\host-manager]
[localhost-startStop-1] org.apache.jasper.servlet.TldScanner.scanJars Au moins un fichier JAR a été analysé pour trouver des TLDs mais il n'en contenait pas, le mode "debug" du journal peut être activé pour obtenir une liste complète de JAR scannés sans succès; éviter d'analyser des JARs inutilement peut améliorer sensiblement le temps de démarrage et le temps de compilation des JSPs
[localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Le déploiement du répertoire [D:\Users\username\apache-tomcat-8.5.47\webapps\host-manager] de l'application web s'est terminé en [175] ms
[localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Déploiement du répertoire d'application web [D:\Users\username\apache-tomcat-8.5.47\webapps\manager]
[localhost-startStop-1] org.apache.jasper.servlet.TldScanner.scanJars Au moins un fichier JAR a été analysé pour trouver des TLDs mais il n'en contenait pas, le mode "debug" du journal peut être activé pour obtenir une liste complète de JAR scannés sans succès; éviter d'analyser des JARs inutilement peut améliorer sensiblement le temps de démarrage et le temps de compilation des JSPs
[localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Le déploiement du répertoire [D:\Users\username\apache-tomcat-8.5.47\webapps\manager] de l'application web s'est terminé en [200] ms
[localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Déploiement du répertoire d'application web [D:\Users\username\apache-tomcat-8.5.47\webapps\ROOT]
[localhost-startStop-1] org.apache.jasper.servlet.TldScanner.scanJars Au moins un fichier JAR a été analysé pour trouver des TLDs mais il n'en contenait pas, le mode "debug" du journal peut être activé pour obtenir une liste complète de JAR scannés sans succès; éviter d'analyser des JARs inutilement peut améliorer sensiblement le temps de démarrage et le temps de compilation des JSPs
[localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Le déploiement du répertoire [D:\Users\username\apache-tomcat-8.5.47\webapps\ROOT] de l'application web s'est terminé en [182] ms
[main] org.apache.coyote.AbstractProtocol.start Démarrage du gestionnaire de protocole ["http-nio-8080"]
[main] org.apache.coyote.AbstractProtocol.start Démarrage du gestionnaire de protocole ["ajp-nio-8009"]
[main] org.apache.catalina.startup.Catalina.start Server startup in 1872 ms
我找到了解决方案:
我的 WAR 名称与我的应用程序名称不同,所以我更正了它并且成功了。
我正在使用 ANT 工具构建一个 war 文件,一旦构建它就会被复制到 tomcat webapps 文件夹。但是,tomcat 服务器在执行后显示 404 错误。
错误:
Ant 构建部分:
<property name="deployment.dir" location="./a222rc/server" />
<property name="BUILD_ALL" location="./a222rc/build/" />
<property name="webxml.path" location="${deployment.dir}/WEB-INF/web.xml" />
<property name="tomcat" value="D:/Users/user/apache-tomcat-8.5"/>
<property name="tomcat.deployment" value="${tomcat}/webapps" />
<property name="tomcat.bin" value="${tomcat}/bin" />
<target name="create_war" description="Generates war for complete module">
<war destfile="${BUILD_ALL}/eCollection_rc.war" webxml="${webxml.path}">
<fileset dir="${deployment.dir}">
<exclude name="**/classes12.jar" />
</fileset>
<fileset dir="${help.dir}" />
</war>
<antcall target="deployTarget"/>
</target>
<!-- ******************* Deploy and start*************************** -->
<target name="deployTarget">
<copy file="${BUILD_ALL}/mybuild.war" todir="${tomcat.deployment}"/>
<antcall target="startTomcat"/>
</target>
<target name="startTomcat">
<exec executable="${tomcat.bin}/startup.bat"/>
</target>
<target name="stopTomcat">
<exec executable="${tomcat.bin}/shutdown.bat"/>
</target>
Web.xml
<servlet>
<servlet-name>ControlerServlet</servlet-name>
<servlet-class>a222rc.ControlerServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ControlerServlet</servlet-name>
<url-pattern>/servlet/ControlerServlet</url-pattern>
</servlet-mapping>
la classe controlerServlet 位于 WEB-INF/classes/a222rc.
Catalina 日志:
[main] org.apache.catalina.startup.VersionLoggerListener.log Version du serveur: Apache Tomcat/8.5.47
[main] org.apache.catalina.startup.VersionLoggerListener.log Serveur compilé: Oct 7 2019 13:30:46 UTC
[main] org.apache.catalina.startup.VersionLoggerListener.log Version du serveur: 8.5.47.0
[main] org.apache.catalina.startup.VersionLoggerListener.log Nom de l'OS: Windows 10
[main] org.apache.catalina.startup.VersionLoggerListener.log Version de l'OS: 10.0
[main] org.apache.catalina.startup.VersionLoggerListener.log Architecture: amd64
[main] org.apache.catalina.startup.VersionLoggerListener.log Répertoire de Java: C:\Program Files\Java\jre1.8.0_231
[main] org.apache.catalina.startup.VersionLoggerListener.log Version de la JVM: 1.8.0_231-b11
[main] org.apache.catalina.startup.VersionLoggerListener.log Fournisseur de la JVM: Oracle Corporation
[main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE: D:\Users\username\apache-tomcat-8.5.47
[main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME: D:\Users\username\apache-tomcat-8.5.47
[main] org.apache.catalina.startup.VersionLoggerListener.log Argument de la ligne de commande: -Djava.util.logging.config.file=d:\Users\username\apache-tomcat-8.5.47\conf\logging.properties
[main] org.apache.catalina.startup.VersionLoggerListener.log Argument de la ligne de commande: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
[main] org.apache.catalina.startup.VersionLoggerListener.log Argument de la ligne de commande: -Djdk.tls.ephemeralDHKeySize=2048
[main] org.apache.catalina.startup.VersionLoggerListener.log Argument de la ligne de commande: -Djava.protocol.handler.pkgs=org.apache.catalina.webresources
[main] org.apache.catalina.startup.VersionLoggerListener.log Argument de la ligne de commande: -Dignore.endorsed.dirs=
[main] org.apache.catalina.startup.VersionLoggerListener.log Argument de la ligne de commande: -Dcatalina.base=d:\Users\username\apache-tomcat-8.5.47
[main] org.apache.catalina.startup.VersionLoggerListener.log Argument de la ligne de commande: -Dcatalina.home=d:\Users\username\apache-tomcat-8.5.47
[main] org.apache.catalina.startup.VersionLoggerListener.log Argument de la ligne de commande: -Djava.io.tmpdir=d:\Users\username\apache-tomcat-8.5.47\temp
[main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent La librairie Apache Tomcat Native basée sur APR qui permet des performances optimales dans les environnements de production n'a pas été trouvée sur le java.library.path: [C:\Program Files\Java\jre1.8.0_231\bin;C:\windows\Sun\Java\bin;C:\windows\system32;C:\windows;C:/Program Files/Java/jdk1.8.0_231/bin/../jre/bin/server;C:/Program Files/Java/jdk1.8.0_231/bin/../jre/bin;C:/Program Files/Java/jdk1.8.0_231/bin/../jre/lib/amd64;C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\windows\system32;C:\windows;C:\windows\System32\Wbem;C:\windows\System32\WindowsPowerShell\v1.0\;C:\windows\System32\OpenSSH\;C:\Program Files\TortoiseSVN\bin;d:\Users\username\AppData\Local\Microsoft\WindowsApps;d:\Users\username\apache-tomcat-8.5.47\lib;;C:\windows\System32;;.]
[main] org.apache.coyote.AbstractProtocol.init Initialisation du gestionnaire de protocole ["http-nio-8080"]
[main] org.apache.tomcat.util.net.NioSelectorPool.getSharedSelector Using a shared selector for servlet write/read
[main] org.apache.coyote.AbstractProtocol.init Initialisation du gestionnaire de protocole ["ajp-nio-8009"]
[main] org.apache.tomcat.util.net.NioSelectorPool.getSharedSelector Using a shared selector for servlet write/read
[main] org.apache.catalina.startup.Catalina.load Initialization processed in 510 ms
[main] org.apache.catalina.core.StandardService.startInternal Démarrage du service [Catalina]
[main] org.apache.catalina.core.StandardEngine.startInternal Starting Servlet Engine: Apache Tomcat/8.5.47
[localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployWAR Déploiement de l'archive [D:\Users\username\apache-tomcat-8.5.47\webapps\eCollection_rc.war] de l'application web
[localhost-startStop-1] org.apache.catalina.startup.ExpandWar.expand Un répertoire décompressé [D:\Users\username\apache-tomcat-8.5.47\webapps\eCollection_rc] a été trouvé avec une date de dernière modification qui ne correspond pas au WAR associé, il sera effacé
[localhost-startStop-1] org.apache.jasper.servlet.TldScanner.scanJars Au moins un fichier JAR a été analysé pour trouver des TLDs mais il n'en contenait pas, le mode "debug" du journal peut être activé pour obtenir une liste complète de JAR scannés sans succès; éviter d'analyser des JARs inutilement peut améliorer sensiblement le temps de démarrage et le temps de compilation des JSPs
[localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployWAR Le déploiement de l'archive de l'application web [D:\Users\username\apache-tomcat-8.5.47\webapps\eCollection_rc.war] s'est terminé en [661] ms
[localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Déploiement du répertoire d'application web [D:\Users\username\apache-tomcat-8.5.47\webapps\docs]
[localhost-startStop-1] org.apache.jasper.servlet.TldScanner.scanJars Au moins un fichier JAR a été analysé pour trouver des TLDs mais il n'en contenait pas, le mode "debug" du journal peut être activé pour obtenir une liste complète de JAR scannés sans succès; éviter d'analyser des JARs inutilement peut améliorer sensiblement le temps de démarrage et le temps de compilation des JSPs
[localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Le déploiement du répertoire [D:\Users\username\apache-tomcat-8.5.47\webapps\docs] de l'application web s'est terminé en [204] ms
[localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Déploiement du répertoire d'application web [D:\Users\username\apache-tomcat-8.5.47\webapps\examples]
[localhost-startStop-1] org.apache.jasper.servlet.TldScanner.scanJars Au moins un fichier JAR a été analysé pour trouver des TLDs mais il n'en contenait pas, le mode "debug" du journal peut être activé pour obtenir une liste complète de JAR scannés sans succès; éviter d'analyser des JARs inutilement peut améliorer sensiblement le temps de démarrage et le temps de compilation des JSPs
[localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Le déploiement du répertoire [D:\Users\username\apache-tomcat-8.5.47\webapps\examples] de l'application web s'est terminé en [380] ms
[localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Déploiement du répertoire d'application web [D:\Users\username\apache-tomcat-8.5.47\webapps\host-manager]
[localhost-startStop-1] org.apache.jasper.servlet.TldScanner.scanJars Au moins un fichier JAR a été analysé pour trouver des TLDs mais il n'en contenait pas, le mode "debug" du journal peut être activé pour obtenir une liste complète de JAR scannés sans succès; éviter d'analyser des JARs inutilement peut améliorer sensiblement le temps de démarrage et le temps de compilation des JSPs
[localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Le déploiement du répertoire [D:\Users\username\apache-tomcat-8.5.47\webapps\host-manager] de l'application web s'est terminé en [175] ms
[localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Déploiement du répertoire d'application web [D:\Users\username\apache-tomcat-8.5.47\webapps\manager]
[localhost-startStop-1] org.apache.jasper.servlet.TldScanner.scanJars Au moins un fichier JAR a été analysé pour trouver des TLDs mais il n'en contenait pas, le mode "debug" du journal peut être activé pour obtenir une liste complète de JAR scannés sans succès; éviter d'analyser des JARs inutilement peut améliorer sensiblement le temps de démarrage et le temps de compilation des JSPs
[localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Le déploiement du répertoire [D:\Users\username\apache-tomcat-8.5.47\webapps\manager] de l'application web s'est terminé en [200] ms
[localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Déploiement du répertoire d'application web [D:\Users\username\apache-tomcat-8.5.47\webapps\ROOT]
[localhost-startStop-1] org.apache.jasper.servlet.TldScanner.scanJars Au moins un fichier JAR a été analysé pour trouver des TLDs mais il n'en contenait pas, le mode "debug" du journal peut être activé pour obtenir une liste complète de JAR scannés sans succès; éviter d'analyser des JARs inutilement peut améliorer sensiblement le temps de démarrage et le temps de compilation des JSPs
[localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Le déploiement du répertoire [D:\Users\username\apache-tomcat-8.5.47\webapps\ROOT] de l'application web s'est terminé en [182] ms
[main] org.apache.coyote.AbstractProtocol.start Démarrage du gestionnaire de protocole ["http-nio-8080"]
[main] org.apache.coyote.AbstractProtocol.start Démarrage du gestionnaire de protocole ["ajp-nio-8009"]
[main] org.apache.catalina.startup.Catalina.start Server startup in 1872 ms
我找到了解决方案:
我的 WAR 名称与我的应用程序名称不同,所以我更正了它并且成功了。