Εμφάνιση 1-11 από 11
  1. #1
    Εγγραφή
    07-06-2007
    Περιοχή
    Άνω Ιλίσια
    Ηλικία
    39
    Μηνύματα
    3.745
    Downloads
    29
    Uploads
    3
    Τύπος
    ADSL2+ On Telecoms Full
    Ταχύτητα
    14170/1024
    ISP
    On Telecoms
    DSLAM
    On Telecoms - ΑΜΠΕΛΟΚΗΠΟΙ
    Router
    PIRELLI
    SNR / Attn
    7(dB) / 24(dB)
    Λοιπόν παιδιά καλησπέρα σας. Στα πλαίσια ενός εργαστηριακού μαθήματος μου, πρέπει να στήσω ένα servlet που θα παίζει στον apache-tomcat.
    Έχω εγκαταστήσει την java-tomca-ant μέσω του package manager της διανομής μου.(Arch Linux-pacman).
    Πάω για παράδειγμα και φτιάχνω ένα παράδειγμα για να δω αν όλα λειτουργούν κανονικά αλλά παίρνω το εξής σφάλμα.
    Είμαι στο ~/test/
    Δίνω ant install
    Κώδικας:
    Buildfile: build.xml
    Trying to override old definition of datatype resources
    
    BUILD FAILED
    /home/giorgos/hello/build.xml:207: taskdef class org.apache.jasper.JspC cannot be found
    
    Total time: 0 seconds
    To αρχείο build.properties είναι εντάξει.

    Αν δώσω ant -v
    Κώδικας:
    Apache Ant version 1.7.0 compiled on April 2 2007
    Buildfile: build.xml
    Detected Java version: 1.6 in: /opt/java/jre
    Detected OS: Linux
    parsing buildfile /home/giorgos/hello/build.xml with URI = file:/home/giorgos/hello/build.xml
    Project base dir set to: /home/giorgos/hello
    [antlib:org.apache.tools.ant] Could not load definitions from resource org/apache/tools/ant/antlib.xml. It could not be found.
    [property] Loading /home/giorgos/hello/build.properties
    [property] Loading /home/giorgos/build.properties
    [property] Unable to find property file: /home/giorgos/build.properties
    Override ignored for property "app.path"
    Override ignored for property "catalina.home"
    Trying to override old definition of datatype resources
    
    BUILD FAILED
    /home/giorgos/hello/build.xml:207: taskdef class org.apache.jasper.JspC cannot be found
       at org.apache.tools.ant.taskdefs.Definer.addDefinition(Definer.java:609)
       at org.apache.tools.ant.taskdefs.Definer.loadProperties(Definer.java:412)
       at org.apache.tools.ant.taskdefs.Definer.execute(Definer.java:268)
       at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
       at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
       at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
       at java.lang.reflect.Method.invoke(Method.java:597)
       at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:105)
       at org.apache.tools.ant.Task.perform(Task.java:348)
       at org.apache.tools.ant.Target.execute(Target.java:357)
       at org.apache.tools.ant.helper.ProjectHelper2.parse(ProjectHelper2.java:140)
       at org.apache.tools.ant.ProjectHelper.configureProject(ProjectHelper.java:96)
       at org.apache.tools.ant.Main.runBuild(Main.java:683)
       at org.apache.tools.ant.Main.startAnt(Main.java:199)
       at org.apache.tools.ant.launch.Launcher.run(Launcher.java:257)
       at org.apache.tools.ant.launch.Launcher.main(Launcher.java:104)
    Caused by: java.lang.ClassNotFoundException: org.apache.jasper.JspC
       at org.apache.tools.ant.AntClassLoader.findClassInComponents(AntClassLoader.java:1383)
       at org.apache.tools.ant.AntClassLoader.findClass(AntClassLoader.java:1324)
       at org.apache.tools.ant.AntClassLoader.loadClass(AntClassLoader.java:1072)
       at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
       at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
       at java.lang.Class.forName0(Native Method)
       at java.lang.Class.forName(Class.java:247)
       at org.apache.tools.ant.taskdefs.Definer.addDefinition(Definer.java:583)
       ... 16 more
    --- Nested Exception ---
    java.lang.ClassNotFoundException: org.apache.jasper.JspC
       at org.apache.tools.ant.AntClassLoader.findClassInComponents(AntClassLoader.java:1383)
       at org.apache.tools.ant.AntClassLoader.findClass(AntClassLoader.java:1324)
       at org.apache.tools.ant.AntClassLoader.loadClass(AntClassLoader.java:1072)
       at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
       at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
       at java.lang.Class.forName0(Native Method)
       at java.lang.Class.forName(Class.java:247)
       at org.apache.tools.ant.taskdefs.Definer.addDefinition(Definer.java:583)
       at org.apache.tools.ant.taskdefs.Definer.loadProperties(Definer.java:412)
       at org.apache.tools.ant.taskdefs.Definer.execute(Definer.java:268)
       at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
       at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
       at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
       at java.lang.reflect.Method.invoke(Method.java:597)
       at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:105)
       at org.apache.tools.ant.Task.perform(Task.java:348)
       at org.apache.tools.ant.Target.execute(Target.java:357)
       at org.apache.tools.ant.helper.ProjectHelper2.parse(ProjectHelper2.java:140)
       at org.apache.tools.ant.ProjectHelper.configureProject(ProjectHelper.java:96)
       at org.apache.tools.ant.Main.runBuild(Main.java:683)
       at org.apache.tools.ant.Main.startAnt(Main.java:199)
       at org.apache.tools.ant.launch.Launcher.run(Launcher.java:257)
       at org.apache.tools.ant.launch.Launcher.main(Launcher.java:104)
    
    Total time: 0 seconds
    Τα path πιστεύω πως είναι σωστά.
    echo $PATH
    Κώδικας:
    /bin:/usr/bin:/sbin:/usr/sbin:/usr/X11R6/bin:/opt/bin:/opt/java/bin:/opt/java/jre/bin:/opt/kde/bin:/opt/mozilla/bin:/opt/qt/bin
    Επίσης δεν βρίσκω κάποιον φάκελο που να έχει κάποιες ρυθμίσεις ή κάποιο
    .conf αρχείο για το ant, παρά μόνο το /usr/bin/ant

    H βοήθεια σας είναι πολύτιμη, γιατι ο χρόνος μου είναι περιορισμένος μέχρι να παραδώσω την άσκηση! Ευχαριστώ πολύ όλους!

  2. #2
    Εγγραφή
    17-09-2007
    Ηλικία
    47
    Μηνύματα
    865
    Downloads
    1
    Uploads
    0
    Δε βρίσκει την κλάση του JSP compiler:
    Κώδικας:
    java.lang.ClassNotFoundException: org.apache.jasper.JspC
    Αυτό σημαίνει οτι κάποιο .jar αρχείο, που θα περιέχει την εν λόγω κλάση, δεν είναι στο CLASSPATH και όχι PATH εφόσον μιλάμε για Java.

    Από την τεκμηρίωση τώρα του Ant task <jspc> είδα:

    By default the task uses the Jasper JSP compiler. This means the task needs jasper.jar and jasper-runtime.jar, which come with builds of Tomcat 4/Catalina from the Jakarta Tomcat project, and any other Jar files which may be needed in future versions (it changes) We recommend (in March 2003) Tomcat version 4.1.x for the most robust version of Jasper.
    Επίσης έχε υπόψη το παρακάτω, πάλι από την τεκμηρίωση:
    Deprecated if you use this task with Tomcat's Jasper JSP compiler, you should seriously consider using the task shipping with Tomcat instead. This task is only tested against Tomcat 4.x. There are known problems with Tomcat 5.x that won't get fixed in Ant, please use Tomcat's jspc task instead.
    Πάντως για να τελειώσεις γρήγορα την εργασία, κατέβασε τα δύο παραπάνω .jar και βάλε τα στο CLASSPATH. Νομίζω θα δουλέψει αυτόματα αν τα βάλεις στο $ANT_HOME/lib.

    Καλή επιτυχία!

  3. #3
    Εγγραφή
    07-06-2007
    Περιοχή
    Άνω Ιλίσια
    Ηλικία
    39
    Μηνύματα
    3.745
    Downloads
    29
    Uploads
    3
    Τύπος
    ADSL2+ On Telecoms Full
    Ταχύτητα
    14170/1024
    ISP
    On Telecoms
    DSLAM
    On Telecoms - ΑΜΠΕΛΟΚΗΠΟΙ
    Router
    PIRELLI
    SNR / Attn
    7(dB) / 24(dB)
    Το πρόβλημα μου είναι πως δεν μπορώ που είναι αυτό το ΑΝΤ_ΗΟΜΕ.
    Αν και έχω εγκατεστημένο το ant, δεν μπορώ να βρω κάποιον φάκελο που να έχει σχέση με το ant, παρά μόνο το αρχείο /usr/bin/ant

    Λίγο πιο αναλυτικά να μπορούσες να μου τα εξηγήσεις γιατί έχω χαθεί.

  4. #4
    Εγγραφή
    17-09-2007
    Ηλικία
    47
    Μηνύματα
    865
    Downloads
    1
    Uploads
    0
    OK, μην ανησυχείς!

    Καταρχάς γνωρίζεις ελπίζω ότι το classpath στη Java είναι το σύνολο των τοποθεσιών, τις οποίες ψάχνει η Java Virtual Machine για να βρεί τα .class αρχεία που χρειάζεται το πρόγραμμά σου. Το classpath είναι κατάλογοι με αρχεία .class καθώς και αρχεία .jar (=zip στην ουσία, αλλά με άλλη κατάληξη) που περιέχουν αρχεία .class. Η μεταβλητή περιβάλλοντος CLASSPATH χρησιμοποιείται για να ορίσει, πλήρως ή εν μέρει το classpath.

    Στη μεταβλητή αυτή θα πρέπει να προσθέσεις τα δύο jar που αναφέρουν οι οδηγίες του Ant. Εφόσον είσαι σε Linux (ωραία!) θα κάνεις κάτι τέτοιο:

    Κώδικας:
    export CLASSPATH=$CLASSPATH:/path/to/jasper.jar:/path/to/jasper-runtime.jar
    Μένει τώρα να βρείς το /path/to/jasper*.jar. Βρές πώς μπορείς να κάνεις τον pacman να σου πει ποιά αρχεία εγκαταστάθηκαν από το πακέτο tomcat. Κάποια από αυτά θα είναι τα jasper*.jar. Αλλιώς ψάξε για jar αρχεία σε /opt, /usr, /usr/local. [Με μια πρόχειρη αναζήτηση μάλλον είναι /opt/tomcat/common/lib/jasper*.jar. Προσοχή, δε βρήκα το jasper-runtime.jar! Ίσως να πρέπει να βάλεις κι άλλα jar από /opt/tomcat/common/lib στο classpath. Σε κάθε περίπτωση αν σου πετάει java.lang.ClassNotFoundException, βάζε κι άλλα jars στο classpath.]

    Έπειτα ξαναδοκίμασε να τρέξεις το ant και πές μας. Προσοχή να το τρέξεις στην ίδια κονσόλα που έδωσες το "export CLASSPATH=...".

  5. #5
    Εγγραφή
    07-06-2007
    Περιοχή
    Άνω Ιλίσια
    Ηλικία
    39
    Μηνύματα
    3.745
    Downloads
    29
    Uploads
    3
    Τύπος
    ADSL2+ On Telecoms Full
    Ταχύτητα
    14170/1024
    ISP
    On Telecoms
    DSLAM
    On Telecoms - ΑΜΠΕΛΟΚΗΠΟΙ
    Router
    PIRELLI
    SNR / Attn
    7(dB) / 24(dB)
    Παράθεση Αρχικό μήνυμα από nikospara
    Με μια πρόχειρη αναζήτηση μάλλον είναι /opt/tomcat/common/lib/jasper*.jar. Προσοχή, δε βρήκα το jasper-runtime.jar
    πήγα στο /opt/tomcat/common/lib/ και βρήκα τα εξής που είχαν να κάνουν με jasper*.jar
    Κώδικας:
    ls -l jasper*.jar
    -rw-r--r-- 1 root root  408133 2008-01-11 19:55 jasper-compiler.jar
    -rw-r--r-- 1 root root 1213732 2008-01-11 19:55 jasper-compiler-jdt.jar
    -rw-r--r-- 1 root root   76844 2008-01-11 19:55 jasper-runtime.jar
    Ύστερα έδωσα το εξής:
    Κώδικας:
     export CLASSPATH=$CLASSPATH:/opt/tomcat/common/lib/jasper-compiler.jar:/opt/tomcat/common/lib/jasper-compiler-jdt.jar:/opt/tomcat/common/lib/jasper-runtime.jar
    πήγα κ πάλι στο ~/hello/
    Κώδικας:
    $ant all
    /home/giorgos/questionnaire/build.xml:146: taskdef class org.apache.catalina.ant.DeployTask cannot be found
    
    Total time: 0 seconds
    Έχω την εντύπωση πως φταίει το build.xml
    χαρακτηριστικά μέσα στο αρχείο λέει ένα σημείο
    Κώδικας:
    <!-- ================== Custom Ant Task Definitions ======================= -->
    
    
    <!--
    
      These properties define custom tasks for the Ant build tool that interact
      with the "/manager" web application installed with Tomcat 6.  Before they
      can be successfully utilized, you must perform the following steps:
    
      - Copy the file "lib/catalina-ant.jar" from your Tomcat 6
        installation into the "lib" directory of your Ant installation.
    
      - Create a "build.properties" file in your application's top-level
        source directory (or your user login home directory) that defines
        appropriate values for the "manager.password", "manager.url", and
        "manager.username" properties described above.
    
      For more information about the Manager web application, and the functionality
      of these tasks, see <http://localhost:8080/tomcat-docs/manager-howto.html>.
    
    -->
    
      <taskdef resource="org/apache/catalina/ant/catalina.tasks"
               classpathref="compile.classpath"/>
    Αυτό μου κάνει εντύπωση

    ........Auto merged post: gkimonas added 2 Minutes and 24 Seconds later........

    Επίσης διαβάζω για το apache-ant directory, έχω φάει όλο το / folder-tree αλλά αυτόν τον φάκελο δεν τον βρίσκω με τίποτα.
    Τελευταία επεξεργασία από το μέλος gkimonas : 22-01-08 στις 05:39. Αιτία: auto merged post

  6. #6
    Εγγραφή
    22-10-2004
    Μηνύματα
    2.435
    Downloads
    4
    Uploads
    0
    Ταχύτητα
    102400/10240
    ISP
    Cosmote
    DSLAM
    ΟΤΕ - ΧΟΛΑΡΓΟΣ
    Router
    Speedport Plus
    Δοκίμασε locate ant (αν το τρέχεις 1η φορά θες ένα sudo updatedb πρώτα)
    Από κει δες τι θα σου βγάλει να βρεις το ant.
    Heh, screw you guys... I'm going home!

  7. #7
    Εγγραφή
    17-09-2007
    Ηλικία
    47
    Μηνύματα
    865
    Downloads
    1
    Uploads
    0
    Ωραία! Προχωρήσαμε! Δηλαδή πλέον βρίσκει τον JspC, αλλά κολλάει παρακάτω. (Ένα σχήμα που θα πρέπει να συνηθίσεις εφόσον ασχοληθείς με προγραμματισμό... ή ό,τι άλλο τεχνικό.) Επί της ουσίας τώρα:

    Όπως πολύ σωστά ξέθαψες από τις οδηγίες του build.xml σου, πρέπει να βάλεις στο classpath το catalina-ant.jar. (Όταν σου λέει να το αντιγράψεις στο <ANT_HOME>/lib αυτό εννοεί.)

    Καταρχάς κάνε αυτό που λέει ο dvm. Δοκίμασε ίσως και "locate catalina-ant.jar". Από το αποτέλεσμα ίσως πληροφορηθείς που βρίσκεται το αρχείο. [Με μια γρήγορη αναζήτηση από τα πακέτα του Arch: /opt/tomcat/server/lib/catalina-ant.jar]

    Το catalina-ant.jar είτε το αντιγράφεις, όπως λέει [μάλλον στο /usr/lib, αφού με "μια γρήγορη αναζήτηση" είδα ότι το ant εγκαθίσταται στο /usr, το οποίο είναι και το ANT_HOME], ή το κοτσάρεις και αυτό στο προηγούμενο CLASSPATH. Και επειδή βλέπω το CLASSPATH να γίνεται ο υπερσηβηρικός, δοκίμασε πρώτα να αντιγράψεις όλα αυτά τα jar (jasper* και catalina-ant) στο /usr/lib.

    Και μία σκέψη: Για tomcat, ant κλπ δε χρησιμοποιώ τα πακέτα της διανομής μου, αλλά κατεβάζω τα τελευταία από internet. Έτσι όχι μόνο έχω τις τελευταίες εκδόσεις, χωρίς να περιμένω πότε θα γίνουν πακέτα, αλλά ορίζω εγώ ακριβώς τα ANT_HOME, TOMCAT_HOME, CATALINA_HOME κλπ.

  8. #8
    Εγγραφή
    22-10-2004
    Μηνύματα
    2.435
    Downloads
    4
    Uploads
    0
    Ταχύτητα
    102400/10240
    ISP
    Cosmote
    DSLAM
    ΟΤΕ - ΧΟΛΑΡΓΟΣ
    Router
    Speedport Plus
    Κι επίσης βασικό πλεονέκτημα του ant είναι ότι κάθε project έχει το δικό του classpath. Στον υπολογιστή το classpath μου είναι .
    Κάθε project έχει το δικό του classpath μέσα στο build.xml.
    πχ.
    Κώδικας:
    build.properties:
    lucene.jar=C:\\Program Files\\Java\\lucene-2.2.0\\lib\\lucene-core-2.2.0.jar
    tidy.jar=C:\\Program Files\\Java\\jtidy\\lib\\Tidy.jar
    
    build.xml:
        ....
        <path id="compile.classpath">
            <pathelement location="${lucene.jar}" />
            <pathelement location="${tidy.jar}" />
        </path>
            
        <path id="test.classpath">
            <path refid="compile.classpath" />
            <pathelement location="${junit.jar}" />
            <pathelement location="${build.dir}/classes" />
            <pathelement location="${build.dir}/test" />
        </path>
        ....
        <target name="compile" depends="init"
                description="Compile the source code">
            <javac srcdir="${src.dir}" destdir="${build.dir}/classes"
                    classpathref="compile.classpath" />
        </target>
    Τελευταία επεξεργασία από το μέλος dvm : 22-01-08 στις 19:56.
    Heh, screw you guys... I'm going home!

  9. #9
    Εγγραφή
    07-06-2007
    Περιοχή
    Άνω Ιλίσια
    Ηλικία
    39
    Μηνύματα
    3.745
    Downloads
    29
    Uploads
    3
    Τύπος
    ADSL2+ On Telecoms Full
    Ταχύτητα
    14170/1024
    ISP
    On Telecoms
    DSLAM
    On Telecoms - ΑΜΠΕΛΟΚΗΠΟΙ
    Router
    PIRELLI
    SNR / Attn
    7(dB) / 24(dB)
    Λοιπόν για να λύσω τα προβλήματα μου έβγαλα και τον tomcat και το ant μέσω του pacman.
    Κατέβασα τα .tar.gz του tomcat κ ant στον προσωπικό μου φάκελο.
    Όλα καλά αλλά έχω δώσει τα ΑΝΤ_ΗΟΜΕ και CATALINA_HOME στο ~/.bash_profile με αποτέλεσμα πρέπει να δίνω κάθε φορά source ~/.bash_profile

    Μήπως θα έπρεπε να πάω στο /etc/profile.d/ και εκεί να φτιάξω ένα ant.sh
    και ένα tomcat.sh όπου θα κάνω chmod ώστε να μπορώ και ώς χρήστης να τα εκτελώ και να τοποθετήσω μέσα τις μεταβλητές.

    Κάποιος φίλος που έχει arch και ξέρει θα τον παρακαλούσα.
    Ευχαριστώ

  10. #10
    Εγγραφή
    17-09-2007
    Ηλικία
    47
    Μηνύματα
    865
    Downloads
    1
    Uploads
    0
    Μήπως θα έπρεπε να πάω στο /etc/profile.d/ και εκεί να φτιάξω ένα ant.sh
    και ένα tomcat.sh όπου θα κάνω chmod ώστε να μπορώ και ώς χρήστης να τα εκτελώ και να τοποθετήσω μέσα τις μεταβλητές.
    Είναι το καλύτερο, κατά τη γνώμη μου.

    Ωστόσο από πλευράς συνέπειας, θα έπρεπε τα δύο προγράμματα να είναι εγκατεστημένα σε κοινόχρηστο φάκελο (πχ /opt). Αν θές να είναι στον προσωπικό σου χώρο, καλύτερα να θέτεις τις μεταβλητές αυτές στο κατάλληλο αρχείο bash initialization file (~/.bashrc, ~/.bash_profile, πάντα τα μπερδεύω τα ρημάδια! ).

  11. #11
    Εγγραφή
    07-06-2007
    Περιοχή
    Άνω Ιλίσια
    Ηλικία
    39
    Μηνύματα
    3.745
    Downloads
    29
    Uploads
    3
    Τύπος
    ADSL2+ On Telecoms Full
    Ταχύτητα
    14170/1024
    ISP
    On Telecoms
    DSLAM
    On Telecoms - ΑΜΠΕΛΟΚΗΠΟΙ
    Router
    PIRELLI
    SNR / Attn
    7(dB) / 24(dB)
    Παράθεση Αρχικό μήνυμα από nikospara
    Ωστόσο από πλευράς συνέπειας, θα έπρεπε τα δύο προγράμματα να είναι εγκατεστημένα σε κοινόχρηστο φάκελο (πχ /opt)
    Έχεις δίκιο θα έπρεπε να τα βάλω πχ στο /opt ή στο /usr/share απλώς θέλω να βάλω να παλέψω την άσκηση μου για να περάσω το εργαστήριο. Δεν με ενδιαφέρουν αυτή τη στιγμή τα servlets.

    Σε ευχαριστώ πολύ για όλα πάντως.

Παρόμοια Θέματα

  1. Επιλογή java compiler στο ant
    Από dvm στο φόρουμ Προγραμματισμός και γλώσσες προγραμματισμού
    Μηνύματα: 2
    Τελευταίο Μήνυμα: 09-10-07, 16:06
  2. Exclude directory στο ant
    Από dvm στο φόρουμ Προγραμματισμός και γλώσσες προγραμματισμού
    Μηνύματα: 1
    Τελευταίο Μήνυμα: 10-08-07, 19:06

Tags για αυτό το Θέμα

Bookmarks

Bookmarks

Δικαιώματα - Επιλογές

  • Δεν μπορείτε να δημοσιεύσετε νέα θέματα
  • Δεν μπορείτε να δημοσιεύσετε νέα μηνύματα
  • Δεν μπορείτε να αναρτήσετε συνημμένα
  • Δεν μπορείτε να επεξεργαστείτε τα μηνύματα σας
  •  
  • Τα BB code είναι σε λειτουργία
  • Τα Smilies είναι σε λειτουργία
  • Το [IMG] είναι σε λειτουργία
  • Το [VIDEO] είναι σε λειτουργία
  • Το HTML είναι εκτός λειτουργίας