Le déploiement d'une application web simple pour Tomcat à l'aide de Ant
Je suis en train de déployer mon application web simple qui se compose d'un web servlet et JSP. Je n'ai pas utilisé de framework comme Spring ou quoi que ce soit, juste un helloWorld web app.
Je suis en utilisant Ant pour son déploiement. Mais quand je lance mon déployer cible qu'il me donne:
java.lang.NoClassDefFoundError:
org/apache/tomcat/util/buf/B2CConverter
Je suis en utilisant Tomcat 7 et j'ai compris toutes les bibliothèques sous répertoire lib de Tomcat et tomcat-juli.jar dans mon webcontent/web-inf/lib
.
Mon Ant fichier cibles sont comme suit:
<!-- Configure the directory into which the web application is built -->
<property name="build" value="${basedir}/build" />
<property name="lib.dir" value="${basedir}/WebContent/WEB-INF/lib" />
<property name="src.dir" value="${basedir}/src" />
<!-- Configure the context path for this application -->
<property name="path" value="/myapp" />
<!-- Configure properties to access the Manager application -->
<property name="url" value="http://localhost:8080/manager/text" />
<property name="username" value="gbids" />
<property name="password" value="tomcat" />
<!-- Configure the custom Ant tasks for the Manager application -->
<taskdef name="deploy" classname="org.apache.catalina.ant.DeployTask" />
<taskdef name="list" classname="org.apache.catalina.ant.ListTask" />
<taskdef name="reload" classname="org.apache.catalina.ant.ReloadTask" />
<taskdef name="findleaks" classname="org.apache.catalina.ant.FindLeaksTask" />
<taskdef name="resources" classname="org.apache.catalina.ant.ResourcesTask" />
<taskdef name="start" classname="org.apache.catalina.ant.StartTask" />
<taskdef name="stop" classname="org.apache.catalina.ant.StopTask" />
<taskdef name="undeploy" classname="org.apache.catalina.ant.UndeployTask" />
<!-- Class path -->
<path id="project.classpath">
<fileset dir="${lib.dir}">
<include name="**/*.jar" />
<include name="**/*.zip" />
</fileset>
</path>
<!-- Executable Targets -->
<target name="compile" description="Compile web application">
<javac srcdir="${src.dir}" destdir="${build}/classes" nowarn="on">
<classpath refid="project.classpath" />
</javac>
</target>
<target name="makeWar" depends="compile">
<delete file="${build}${path}.war"/>
<war destfile="${build}${path}.war" webxml="WebContent/WEB-INF/web.xml">
<fileset dir="WebContent" />
<lib dir="WebContent/WEB-INF/lib" />
<classes dir="build/classes" />
</war>
</target>
<target name="deploy" description="Install web application" depends="makeWar" >
<deploy url="${url}" username="${username}" password="${password}" path="${path}" war="${build}${path}.war" />
</target>
Et j'ai aussi de la suite dans mon tomcat-users.xml fichier:
<role rolename="manager-gui"/>
<role rolename="admin-gui"/>
<role rolename="manager-script"/>
<user username="manager" password="tomcat" roles="manager-gui"/>
<user username="admin" password="tomcat" roles="admin-gui"/>
<user username="gbids" password="tomcat" roles="manager-script"/>
Quelqu'un peut-il svp m'aider à résoudre ce problème.
Grâce
Il ne me donne pas une trace de la pile. Juste une exception dans la console ant. déployer: BUILD FAILED C:\Users\Buddhi\workspace-indigo\AntTestDeploy\build.xml:52: java.lang.NoClassDefFoundError: org/apache/tomcat/util/buf/B2CConverter temps Total: 1 seconde
OriginalL'auteur gbids | 2012-12-27
Vous devez vous connecter pour publier un commentaire.
Vous avez besoin d'être plus intelligent de votre
<taskdef>
s:Vous ne devriez pas avoir de Tomcat, les fichiers JAR dans votre projet
WEB-INF/lib
répertoire: tous les supprimer.Enfin, d'obtenir plus d'informations à partir de fourmi est facile: exécutez
ant --help
pour voir ce que les options de débogage que vous avez.'tomcat-juli.jar' le fichier n'est pas dans le répertoire lib de tomcat, mais il dit qu'il ne trouve pas "tomcat-util.jar' fichier jar.
Voici le code.. ` <property name="catalina.accueil" value="D:\\Program Fichiers\\apache-tomcat-7.0.34" /> <path id="tomcat.classpath"> <fileset dir="${catalina.home}/lib"> <include name="*/.jar" /> </fileset> </path> <taskdef name="déployer" classname="org.apache.catalina.ant.DeployTask"> <classpath refid="tomcat.classpath" /> </taskdef>`
OriginalL'auteur Christopher Schultz
J'ai trouvé la solution. J'ai essayé de faire cette tâche selon les lignes directrices données dans la documentation Tomcat. Selon qu'ils ne demandent qu'à copier " catalina-ant.jar fichier Ant répertoire lib.
Mais une fois que je l'ai copié 'tomcat-coyote.jar' , 'tomcat-juli.jar' , 'tomcat-util.jar dossiers de la Fourmi lib répertoire en collaboration avec" catalina-ant.jar fichier cela a fonctionné parfaitement pour moi.
OriginalL'auteur gbids
Cela sonne comme une erreur d'exécution. Le manque de classe fait partie de la "tomcat-coyote.jar", êtes-vous sûr qu'il a été copié correctement dans votre fichier war?
Vérifier la guerre des fichiers de contenu comme suit:
Les pots doivent tous être situé sous le "WEB-INF/lib". N'importe où ailleurs signifie qu'ils ne sont pas inclus dans le classpath et pourrait expliquer cette erreur
OriginalL'auteur Mark O'Connor