Page 1 of 1

JAVA Εξαιρέσεις

Posted: Wed Nov 01, 2006 3:57 pm
by cs_georgia
Έχω κατεβάσει κάποια βιβλιοθήκη Castor με την οποία μετατρέπεις XML αρχεία σε JAVA και αντίθετο. Έχω βρει και κώδικα στο site http://www.netobjectives.com/xml/download/castor.pdf που χρησιμοποιεί το Castor για να ελέγξω ότι όντως γίνονται οι μετατροπές. Ένώ μεταγλωττίζεται σωστά όταν το τρέχω μου βγάζει τις παρακάτω εξαιρέσεις:
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
at org.exolab.castor.util.Configuration.<clinit><Configuration.java:103>
at org.exolab.castor.xml.Unmarshaller.initConfi(Unmarshaller.java:275)
at org.exolab.castor.xml.Unmarshaller.<init>(Unmarshaller.java:226)
at org.exolab.castor.xml.Unmarshaller.<init>(Unmarshaller.java:213)
at org.exolab.castor.xml.Unmarshaller.unmarshal(Unmarshaller.java:787)
at ReadPerson.main(ReadPerson.java:8)
Μήπως ξέρει κανείς τι φταίεί; Τί είναι το org/apache/commons/logging/LogFactory?

Posted: Wed Nov 01, 2006 4:00 pm
by Tomahawk
ψαξε για την library "Jakarta Commons Logging" και βαλτη στο classpath.

Posted: Wed Nov 01, 2006 4:29 pm
by cs_georgia
Όταν λες να τη βάλω στο classpath τι ακριβώς εννοείς; Βρήκα μια ανάλογη βιβλιοθήκη και επίσης πρόσθεσα import org.apache.commons.logging.*; στο πρόγραμμά μου αλλά τώρα μου βγάζει πολύ περισσότερες εξαιρέσεις.

Posted: Wed Nov 01, 2006 4:55 pm
by Tomahawk
http://castor.codehaus.org/download.html

Διαβασε το κομματι που λεει για Dependent Libraries.
Ολα αυτα τα jar-akia πρεπει να ειναι στο ιδιο directory με αυτο του castor για να δουλεψει.

Btw εσυ δεν χρειαζεσαι να κανεις τπτ import.Τα jar αυτα χρειαζονται γιατι κλασεις της βιβλιοθηκης castor τα κανουν import καπου στο κωδικα τους και γι'αυτο πρεπει να ειναι στο classpath.Οπως και ο δικος σου κωδικας κανει import και χρηση κλασεων της library castor.
Στο classpath ψαχνει η java at runtime να βρει τις διαφορες κλασεις που γινονται import.

Συγκεκριμενα κατεβασε το castor-1.0.4.zip και το castor-1.0.4-src.zip και πεταξε στον ιδιο φακελο ολα τα jar που βρεις στο πρωτο και αυτα τα jar

cglib-full-2.0.2.jar CGLIB (Castor JDO only)
commons-logging-1.1.jar Jakarta Commons Loggin
jdbc-se2.0.jar JDBC 2.0 standard extension (JDO)
jndi_1.2.1.jar The JNDI API (DSML/JNDI)
jta1.0.1.jar The JTA API (transactions) (Castor JDO only)
ldapjdk.jar Mozilla Directory SDK (DSML/MDS)
log4j-1.2.13.jar Log4J
xerces-J_1.4.0.jar Xerces XML library

στον φακελο lib του δευτερου.

Tell me if it worked.

Posted: Wed Nov 01, 2006 5:48 pm
by cs_georgia
Λοιπόν, από τα castor : castor-1.0.4-src.zip και castor-1.0.4.zip το πρώτο μόνο περιείχε .jar αρχεία στο φάκελο lib όπως μου είπες. Από το site http://www.castor.org/download.html και τα dependency jars λείπει ένα , το ldapsp.jar το οποίο δεν μπορώ με τπτ να βρω στο web. Όλα τα άλλα ευτυχώς υπήρχαν στο lib. Τώρα αυτά τα έβαλα μια στο bin χύμα, μια στον φάκελο που ήταν μέσα το castor και που δεν τα΄βαλα!Δεν ξέρω τι κάνω λάθος και βγάζει πάλι τα ίδια...Ίσως να φταίει που δεν έχω βρει αυτό το ένα jar αρχείο...

Posted: Wed Nov 01, 2006 6:03 pm
by Tomahawk
Δεν το χρειαζεται αυτο για να δουλεψει.Το λεει και στο site οτι μονο αυτα που ειναι highlighted ειναι αναγκαια.

Γραψε ακριβως το λαθος που σου πεταει τωρα.

Posted: Wed Nov 01, 2006 6:06 pm
by cs_georgia
Είναι πάρα πολλά αυτά που μου πετάει και δεν γινονται και copy paste. Πρέπει να φύγω τώρα και δεν προλαβαίνω να τα γ΄ραψω, αλλά αύριο θα τα έχω κάνει post. Οπότε αν δε βαριέσαι μπες να τα δεις. Ευχαριστώ πολυ για τη βοήθεια!

Posted: Wed Nov 01, 2006 10:19 pm
by The Punisher
ένα print screen και ανέβασε το στο Imageshack, να μην τρέχεις κιόλας

Posted: Thu Nov 02, 2006 11:05 am
by cs_georgia
Exception in thread "main" java.lang.ExceptionInInitializerError

at org.exolab.castor.xml.Marshaller.initialize(Marshaller.java:401)
at org.exolab.castor.xml.Marshaller.<init>(Marshaller.java:335)
at org.exolab.castor.xml.Marshaller.marshal(Marshaller.java:733)
at CastorTest.main(CastorTest.java:54)

Caused by: org.apache.commons.logging.LogConfigurationException: No suitable Log implementation

at org.apache.commons.logging.impl.LogFactoryImpl.discoverLogImplementation(LogFactoryImpl.java:842)
at org.apache.commons.logging.impl.LogFactoryImpl.newInstance(LogFactoryImpl.java:601)
at org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:333)
at org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:307)
at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:645)
at org.exolab.castor.util.Configuration.<clinit>(Configuration.java:103)
...4more

Αυτά μου πετάει τώρα...