# ANT + Servlet



## Lukas321 (5. Aug 2009)

Muss ich wenn ich Apache ANT mit Servlets verwende irgendetwas anders machen als wei wenn ich es mit einen normalen Java Project nutze?
Bei normalen Java Project funktioniert alles wenn ich das selbe aber mit Servlets verwende geht nichts mehr
Kommt immer cannot find symbol Klasse.java
???:L

lg


----------



## Lukas321 (6. Aug 2009)

keine Ideen???
lg


----------



## mvitz (6. Aug 2009)

Deine Frage ist einfach zu unkonkret, vermutlich weiß hier keiner, was du genau möchtest.

Interessant wäre einmal, wie deine Projektstruktur aussieht, wie dein Ant File aussieht, wo der genaue Fehler kommt.


----------



## Lukas321 (6. Aug 2009)

Also so sieht mein ANT build.xml file zurzeit aus:


```
<project name="MyTask" basedir="." default="Main">

	<property name="src" location="src" />
	<property name="build" location="build" />
	<property name="dist" location="dist" />
	<property name="docs" location="docs" />

	<target name="clean">
		<delete dir="${build}" />
		<delete dir="${docs}" />
		<delete dir="${dist}" />
	</target>
	
	<target name="makedir">
		<mkdir dir="${build}" />
		<mkdir dir="${docs}" />
		<mkdir dir="${dist}" />
	</target>
	
	<target name="compile" depends="clean, makedir">
		<javac srcdir="${src}" destdir="${build}" />
	</target>

	<target name="jar" depends="compile">
		<jar destfile="${dist}\test.jar" basedir="${build}">
			<manifest>
				<attribute name="Main-Class" value="main.Main" />
			</manifest>
		</jar>
	</target>
	
	<target name="Main" depends="compile, jar">
		<description>Main target</description>
	</target>
</project>
```

Struktur sieht ca so aus:
-src
     # package mit den ganzen Klassen
-WebContent
     # alle .jsp's
-build.xml


Wenn ich nun das Ant Script starte kommt er bis zum target compile und dann nicht mehr weiter! Fehler:

    [javac] C:\Dokumente und Einstellungen\lstampfer\workspace\ServletDemo\src\net4you\UpdateBlacklist.java:58: cannot find symbol
    [javac] symbol  : class ServletException
    [javac] location: class net4you.UpdateBlacklist
    [javac]     protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

Normal in Eclipse läuft alles ganz normal deswegn kann ich mir nur denken das ich bei ANT irgendwas falsch habe! Vielleicht muss das Script bei Servlets anders aussehen??? Habe aber noch nichts gefundn wo so was gestanden ist.....

lg


----------



## mvitz (6. Aug 2009)

Du musst die Servlet-API noch in deinen Klassenpfad für ANT aufnehmen.

[XML]	<target name="compile" depends="clean, makedir">
    <javac srcdir="${src}" destdir="${build}">
        <classpath>
            <fileset dir="${tomcat.home}/lib" includes="*.jar" />
        </classpath>
    </javac>
</target>[/XML]

Müsstest dafür vorher natürlich das Property tomcat.home noch setzen


----------



## maki (6. Aug 2009)

WAR Task


----------



## Lukas321 (6. Aug 2009)

OK Danke..jetzt bin ich schon einen Schritt weiter

Aber jetzt schreibt er:

Problem: failed to create task or type classpath
Cause: The name is undefined.
Action: Check the spelling.
Action: Check that any custom tasks/types have been declared.
Action: Check that any <presetdef>/<macrodef> declarations have taken place.

Heißt das er kennt den Befehl classpath nicht?? Denn wenn ich <classpath> selbst im Script schreiben möchte gibt er mir auch keine Vorschläge dafür...:bahnhof:

lg


----------



## Lukas321 (6. Aug 2009)

Für was benötige ich dieses WAR Task..verstehe ich noch nicht ganz..


----------



## mvitz (6. Aug 2009)

Komisch, classpath in einem javac task funktioniert bei mir einwandfrei...

den WAR Task braucht man, anschließend um die gesamte Anwendung in ein WAR FIle zu packen, welches du dann auf den Tomcat bringen kannst


----------



## Lukas321 (6. Aug 2009)

hmmm..

weiß sonst irgendwer wie ich das mit dem classpath zum laufen bekomm oder hat jemand schon so ne fehlermeldung bekommen..???

lg


----------



## mvitz (6. Aug 2009)

Poste doch nochmal die aktuelle build.xml (mit dem Fehler)

Hast du den <classpath> auch innerhalb von <javac> (beachte dass da kein /> am ende ist)


----------



## Lukas321 (6. Aug 2009)

Ahhh...vielen DANK!!!

ich hab die javac obn schon /> zugemacht!! Jetzt funktioniert alles!!:applaus::applaus:

Eine Frage noch zu dieser WAR Task:
Ich hab jetzt dieses War file auch schon erstellt. Aber wie binde ich dieses jetzt auf meinen Tomcat ein??

lg


----------



## mvitz (6. Aug 2009)

Z.B. durch kopieren des WAR-Files in ${tomcat.home}/webapps danach kannst du unter ]http://localhost:8080/[namedeswarfiles] die Applikation erreichen.


----------



## Lukas321 (6. Aug 2009)

Ok werd ich machen!

Danke nochmal für deine Hilfe!!:toll:
lg


----------

