Ant Compiler Problem

Status
Nicht offen für weitere Antworten.
T

theforce

Gast
Hi,

ich hab ein sehr nerviges Problem mit meinem Ant-Tool. Ich hab ein recht umfangreiches Projekt programmiert, mit mehreren Packages, JSP, Spring, Hibernate... usw.

Das Problem ist folgendes:
Wenn ich Ant mit dem Befehl "ant all" aufrufen, löscht er mir ja erstmal mein Build-Verzeichnis, kompiliert danach die Klassen neu und deployt die dann wieder ins Verzeichnis.

Allerdings haut er mir beim compilieren immer diverse Exceptions raus, die sich immer auf Methoden beziehen, die es zwar noch gibt, die allerdings mittlerweile andere Übergabeparameter besitzen.

Also z.B. im Interface "blubbDAO" gab es mal die Methode:

Code:
create(Connection conn, BlubbObj blubb) throws Exception

mittlerweile hab ich aber die Methode geändert, also heißt sie jetzt z.B.:

Code:
create(BlubbObj blubb) throws Exception


beim kompilieren wirft er dann plötzlich ne NoSuchMethodException, und sagt mir dass die Klasse, die das DAO-Interface implementiert nicht die Methode "create(Connection conn, BlubbObj blubb)" besitzt.
Is ja klar... warum sollte sie auch, die is ja veraltet, d.h. die gibts nicht mehr!?!?
Aber der Compiler scheint die trotzdem noch zu kennen... woher frag ich mich?!? Gibts da irgendwo ein temporäres Verzeichnis, wo Ant alle seine kompilierten Klassen ablegt oder sowas ähnliches??

Ich hab schon mehrmals gesucht und noch nichts dazu gefunden und es treibt mich echt in den Wahnsinn.
Damit ich die Compiler-Probleme umgehen kann muss ich nämlich jedesmal alle die Klassen, die er mir ausspuckt, durchgehen und irgendwo einfach ein Leerzeichen einfügen, damit er sie neu abspeichert und anscheinend komplett neu kompiliert.

Aber sobald ich dann endlich eine lauffähige Web-Application hab und irgendwelche größeren Änderungen vornehme, und dann natürlcih das "ant all" wieder aufrufen muss, fängt er mit den Fehlermeldungen wieder von vorne an!!

Hab auch schon im Eclipse mehrmals auf "Project -> Build all" geklickt, damit die ganzen Klassen kompiliert werden - hilft aber auch nicht weiter.


Hoffe mir kann irgendjemand helfen!?

Danke und Gruß,
theforce
 
R

Roar

Gast
ne NoSuchMethodException wird garantiert nicht beim kompilieren geworfen, sondern beim ausführen :autsch: ???:L
 
G

Guest

Gast
also das folgende ist eine der Ausgaben. Der Fehler tritt schon beim compilieren auf... da steht ja auch "compiling 11 source files... " und danach erst die Exceptions... ausführen tu ich ja mit Ant noch gar nix, sondern erst wenn ich die entsprechenden Servlets oder JSPs aufm Tomcat aufrufe.

Buildfile: build.xml

clean:

prepare:
[mkdir] Created dir: G:\EnterpriseComputing\commendMyProf\build
[mkdir] Created dir: G:\EnterpriseComputing\commendMyProf\build\WEB-INF
[mkdir] Created dir: G:\EnterpriseComputing\commendMyProf\build\WEB-INF\clas
ses
[copy] Copying 76 files to G:\EnterpriseComputing\commendMyProf\build
[copy] Copied 12 empty directories to 1 empty directory under G:\Enterprise
Computing\commendMyProf\build

compile:
[javac] Compiling 11 source files to G:\EnterpriseComputing\commendMyProf\bu
ild\WEB-INF\classes
[javac] G:\EnterpriseComputing\commendMyProf\src\dao\TeacherDAOImpl.java:16:
dao.TeacherDAOImpl is not abstract and does not override abstract method delete
(java.sql.Connection,users.Teacher) in dao.TeacherDAO
[javac] public class TeacherDAOImpl implements TeacherDAO {
[javac] ^
[javac] G:\EnterpriseComputing\commendMyProf\src\hibernate\dao\EvalDAOHibern
ateImpl.java:20: hibernate.dao.EvalDAOHibernateImpl is not abstract and does not
override abstract method delete(java.sql.Connection,evaluation.Eval) in dao.Eva
lDAO
[javac] public class EvalDAOHibernateImpl implements EvalDAO {
[javac] ^
[javac] G:\EnterpriseComputing\commendMyProf\src\hibernate\dao\SubjectDAOHib
ernateImpl.java:19: hibernate.dao.SubjectDAOHibernateImpl is not abstract and do
es not override abstract method delete(java.sql.Connection,subjects.Subject) in
dao.SubjectDAO
[javac] public class SubjectDAOHibernateImpl implements SubjectDAO {
[javac] ^
[javac] G:\EnterpriseComputing\commendMyProf\src\hibernate\tests\TestHiberna
teDAO.java:49: cannot find symbol
[javac] symbol : method setShorttitle(java.lang.String)
[javac] location: class subjects.Subject
[javac] s.setShorttitle("enc");
[javac] ^
[javac] G:\EnterpriseComputing\commendMyProf\src\hibernate\tests\TestHiberna
teDAO.java:57: cannot find symbol
[javac] symbol : method getShorttitle()
[javac] location: class subjects.Subject
[javac] String sid = s.getShorttitle();
 
G

Guest

Gast
ah sorry.. du hast recht.. da fliegt gar keine Exception.. glaub da hatte ich noch etwas anderes im Kopf als ich das geschrieben hab.
Naja.. aber das Problem ist immerhin sichtbar... und auch ohne eine konkrete Exception gibts Fehlermeldungen von Ant. Und zwar genau solche, wie ich bereits beschrieben hab.

Schon bei der ersten Fehlermeldung ist es genau das Problem mit dem Interface... mein Interface hat eine Methode namens "delete(Teacher teacher)".
Ant sagt mir aber, dass die TeacherDAOImpl nicht abstract ist und nicht die abstrakte Methode "delete(Connection conn, Teacher teacher)" überschreibt. Also sehr seltsam.. ich hab bei der delete-Methode halt einfach den ersten Parameter rausgenommen und seitdem möchte er ständig die alte Methode zurück haben?!?
Abstract kann ich's ja schlecht machen, das ist schließlich die Implementierung meines Interfaces.

Gleiches ist im Prinzip auch bei den restlichen Fehlermeldungen das Problem!
 
R

Roar

Gast
das interface wird anscheinend nicht mitkompiliert :?:
erweiter mal den src pfad für den javac task um die interfaces
und lösche vor dem kompilieren alle class files
 
G

Guest

Gast
Ne.. das bringt auch nix.. außerdem hab ich ja ne "src" Verzeichnis in dem alle meine Klassen in verschiedenen Packages liegen... die beiden Klassen liegen z.B. im "dao" Package... also da sind sowohl Interfaces als auch normale Klassen drin.
In der build.xml hab ich denke ich, auch alles korrekt angegeben:

Code:
  ...
  <property name="app.name"      value="commendmyprof"/>
  <property name="app.path"      value="/${app.name}"/>
  <property name="app.version"   value="0.1-dev"/>
  <property name="build.home"    value="${basedir}/build"/>
  <property name="catalina.home" value="${catalina.home}"/> 
  <property name="dist.home"     value="${basedir}/dist"/>
  <property name="docs.home"     value="${basedir}/docs"/>
  <property name="src.home"      value="${basedir}/src"/>
  <property name="web.home"      value="${basedir}/web"/>

  <property name="compile.debug"       value="false"/>
  <property name="compile.deprecation" value="true"/>
  <property name="compile.optimize"    value="true"/>

  ...

  <path id="compile.classpath">

    
    
    <fileset dir="${web.home}/WEB-INF/lib">
      <include name="*.jar"/>
    </fileset>
    
    
    <pathelement location="${catalina.home}/common/classes"/>
    <fileset dir="${catalina.home}/common/endorsed">
      <include name="*.jar"/>
    </fileset>
    <fileset dir="${catalina.home}/common/lib">
      <include name="*.jar"/>
    </fileset>
    <pathelement location="${catalina.home}/shared/classes"/>
    <fileset dir="${catalina.home}/shared/lib">
      <include name="*.jar"/>
    </fileset>

  </path>

  ...

  <target name="compile" depends="prepare"
   description="Compile Java sources">

    
    <mkdir    dir="${build.home}/WEB-INF/classes"/>
    <javac srcdir="${src.home}"
          destdir="${build.home}/WEB-INF/classes"
            debug="${compile.debug}"
   	  deprecation="${compile.deprecation}"
      	 optimize="${compile.optimize}">
        <classpath refid="compile.classpath"/>  
    </javac>

    
    <copy  todir="${build.home}/WEB-INF/classes">
      <fileset dir="${src.home}" excludes="**/*.java"/>
    </copy>

  </target>
 

KSG9|sebastian

Top Contributor
Hm..ich sehe dass du Bibliotheken vom Tomcat in den Classpath aufnimmst. Kann sein dass du unbewusst oder durch deployen der Anwendung eine ältere Version deiner Anwendung in nem Lib-Ordner rumliegen hasst. Dadurch verwendet Ant ein veraltetes Interface aus ner jar-Datei. Schau mal die Jar-Archive in den eingebundenen Verzeichnissen an oder binde explizit die benötigten Jar-Archive ein anstatt alle zu nehmen.
 
G

Guest

Gast
hab ich probiert... aber mein skript deployt ja nach /projektordner/build/ und nicht ins Tomcat Verzeichnis. Also sehr seltsamer bug.
Ich hatte das ganze schonmal vor ner weile... allerdings hat es sich da nur auf eine einzige methode bezogen... und ich habs dann einfach so gelöst, dass ich die Methode anders benannt habe, danach gings plötzlich wieder ohne Probleme. Allerdings hab ich bei so vielen Problemen jetzt nicht unbedingt lust alle betroffenen Methoden umzubennen.
 

KSG9|sebastian

Top Contributor
Project->Clean

Ist der Ant-Outputordner derselbe wie der Eclipse-Outputordner? Falls ja stell das mal um. Und wie gesagt, schau mal was in den eingebundenen Ordnern (common, shared / lib, classes) so alles an Jars liegt.
Irgendwo im Classpath fahren bestimmt ein paar veraltete Jars oder Klassen rum.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Problem mit redundanten Servern Allgemeines EE 7
Azemaria JSF: Problem bei der einfachsten Applikation Allgemeines EE 2
P JPA Internal Problem Nullpointer Allgemeines EE 10
S MessageDrivenBean Problem beim Zugriff auf Stateful EJB Allgemeines EE 2
M Glassfish Deployment-Problem unter Eclipse Allgemeines EE 0
B Problem beim Lesen des Codes... Allgemeines EE 2
R JPA Problem beim Speichern eines Users Allgemeines EE 2
S WebSocket Problem Allgemeines EE 0
F Eclipse/Java EE Debug-Problem Allgemeines EE 1
G Problem: Servlet in JSP einbinden mit <jsp:include> Allgemeines EE 3
Raidri [SEAM] rich:dataTable sortBy Problem Allgemeines EE 6
T Problem mit den Beispielen von Apache Allgemeines EE 5
W JSF Validator Problem HTTP Status 500 Allgemeines EE 2
E JBoss 7.1 Datasource Problem Allgemeines EE 2
M JSP Problem -unbestimmte Anzahl von Werten Transportieren Allgemeines EE 9
S Problem mit EJB Verständnis Allgemeines EE 4
B Problem beim einbinden einer CSS in eine JSP Allgemeines EE 8
F JSP Problem mit Datenbankanbindung über Glassfishserver Allgemeines EE 4
S java Entities Problem Allgemeines EE 19
S Embedded JBoss Problem beim Deployment Allgemeines EE 4
E Session Problem Allgemeines EE 9
F problem mit nullpointer bei DB zugriff Allgemeines EE 2
A Erste Schritte... Problem mit Hibernate Allgemeines EE 15
ruutaiokwu jboss problem - work-verzeichnis muss manuell gelöscht werden??? Allgemeines EE 5
Stillmatic sendRedirect Problem! Allgemeines EE 3
M Problem mit Lookup auf EJB3 mit Glassfish Allgemeines EE 11
0 Problem mit librarys javax.servlet.http.HttpServletRequest cannot be resolved Allgemeines EE 1
X JBoss InitialContext problem Allgemeines EE 5
LordZed Problem mit dem einbinden von Bibliotheken, die sich gegenseitig verwenden Allgemeines EE 5
H GWT Problem beim Ausführen Allgemeines EE 8
Q Problem mit JMS und Weblogic 10 Allgemeines EE 5
E Performance-Problem beim ersten Request Allgemeines EE 4
G Multi User Problem Allgemeines EE 8
G Datasource Problem Allgemeines EE 1
J OOP Java Array Problem Allgemeines EE 2
T Problem mit Java Transaction API Allgemeines EE 2
D Problem mit EJB: Bean soll Objekt eigener Klasse zurückgeben Allgemeines EE 2
N JavaMail Problem Allgemeines EE 4
N JBoss Problem mit Bibliothek in unterschiedlichen Versionen Allgemeines EE 2
A Tomcat -- JSP: komisches Problem Allgemeines EE 11
W Speicher-Problem bei WebApp unter Tomcat, Struts, Hibernate Allgemeines EE 3
B Problem mit ActionListener Allgemeines EE 13
G Simples JSF-Projekt in Eclipse - Problem Allgemeines EE 9
O eclipse - tomcat: Problem bei einfachem Webservice Allgemeines EE 16
J Problem mit EJB Aufruf und DualCore Rechner Allgemeines EE 4
J ejb3.0 datenbank problem Allgemeines EE 2
J Problem mit Zurück-Button Allgemeines EE 2
T Tomcat: JNDI + JDBC Problem Allgemeines EE 3
J problem mit jsp/js Allgemeines EE 2
B Help - EJB2 - Problem mit Hybernate und "LIMIT" Allgemeines EE 6
B JSTL Problem Allgemeines EE 8
byte Tomcat Deployment Problem (HTTP Status 503) Allgemeines EE 8
S Problem mit t:selectOneRadio und ValueChangeListener Allgemeines EE 2
S Problem mit Struts und tiles Allgemeines EE 4
B Problem mit JBoss-4.2.1.GA Allgemeines EE 8
N Tiles - JSF Problem Allgemeines EE 3
M JSF & EJB "Bean not bound" Problem Allgemeines EE 4
V MYSQL JDBC;java.lang.ClassNotFoundException; Problem Eclipse Allgemeines EE 3
megachucky JMS - Problem mit TemporaryQueue Allgemeines EE 2
G Problem mit MimeType/ContentType Allgemeines EE 4
E Java Mail problem Allgemeines EE 5
Y XFire - Maven Build Problem Allgemeines EE 2
D JSP Problem mit equals? Allgemeines EE 2
A Eclipse Start-Problem Allgemeines EE 5
S JSF - Custom converter Problem Allgemeines EE 3
Y JSF Uhrzeitausgabe Problem Allgemeines EE 4
M servlet --> jsp - problem beim umstrukturieren Allgemeines EE 5
Y JSF - rendered Problem Allgemeines EE 1
D Servlet Problem über Server Allgemeines EE 26
Zed JSF h:inputText h:outputText update Problem Allgemeines EE 2
K mysql treiber problem wenn import java.sql.* bei _servlet_ Allgemeines EE 2
S JDBC Mysql Connection Problem - datasource null Allgemeines EE 3
T Session-Problem Allgemeines EE 2
R Tiles - Layout-Problem wegen Leerzeichen Allgemeines EE 6
G Tomcat / Eclipse oder Web.xml Problem Allgemeines EE 11
S Netbeans 5.5 Visual Web Pack Problem mit INSERT und PK Allgemeines EE 4
D JSF Problem mit Action Allgemeines EE 2
F Klassen und zugriffs Problem "Help wanted"! Allgemeines EE 16
D <input type="file"> Problem Allgemeines EE 6
N Struts - Problem mit <html:link> Action Allgemeines EE 3
A Problem / Fehler beim Einbinden einer Klasse in ein JSP Allgemeines EE 20
G Session Problem Allgemeines EE 5
T Problem dem Zaehler in mein Java - Code Allgemeines EE 2
A Hibernate-Problem mit MySQL-Cluster Allgemeines EE 6
H Servlet problem Allgemeines EE 10
G Problem mit Benutzerverwaltung Allgemeines EE 3
S Hibernate Mapping Problem Allgemeines EE 3
S Hibernate INSERT Problem Allgemeines EE 11
S Dummes JSP-Problem Allgemeines EE 8
P EJB-Installations-Problem Allgemeines EE 4
S CSS Problem in JSP Allgemeines EE 16
C Problem mit html:optionsCollection Allgemeines EE 4
R HILFE: Problem mit JSF examples Allgemeines EE 10
R Problem mit value-expression Allgemeines EE 7
R Problem mit for-schleife in JSP tag Allgemeines EE 8
B Struts Problem: Array in JSP ausgeben (logic:iterate) Allgemeines EE 12
M Redirct-Problem Allgemeines EE 4
M Geronimo v1.1 - Problem mit EAR deployen Allgemeines EE 5
S Problem mit Servlet Allgemeines EE 11
S jsp-Problem Allgemeines EE 5

Ähnliche Java Themen

Neue Themen


Oben