Får jeg denne fejl: Exception in thread "main" java.lang.NoSuchMethodError: MySaxParser2.<init><Ljava/util/ArrayList;Ljava/util/ArrayList;>V at KPersonXml.readKontaktPersonXml(KPersonXml.java:53) at Run.mail(Run.java:23)
public static String xmlConvert(String tmp) { String s = tmp.replaceAll("&", "&"); tmp = s.replaceAll("<", "<"); s = tmp.replaceAll(">", ">"); return s; } }
class MySaxParser2 extends DefaultHandler { private StringBuffer element = new StringBuffer(); private KontaktPerson kPObj; private ArrayList result; private ArrayList firmaListe; Metoder m = new Metoder(); public MySaxParser2(ArrayList result, ArrayList firmaListe) { this.result = result; this.firmaListe = firmaListe; } public void characters(char buf[], int offset, int len) throws SAXException { element.append(new String(buf, offset, len)); return; }
public void startElement( String namespaceURI, String localName, String rawName, Attributes atts) throws SAXException { if (rawName.equals("element")) { kPObj = new KontaktPerson(); } if (rawName.equals("navn")) { element = new StringBuffer(); } if (rawName.equals("firma")) { element = new StringBuffer(); } if (rawName.equals("tlf")) { element = new StringBuffer(); } if (rawName.equals("mobil")) { element = new StringBuffer(); } if (rawName.equals("email")) { element = new StringBuffer(); } if (rawName.equals("noter")) { element = new StringBuffer(); } if (rawName.equals("oprettet")) { element = new StringBuffer(); } return; }
public void endElement( String namespaceURI, String localName, String rawName) throws SAXException { if (rawName.equals("element")) { result.add(kPObj); } if (rawName.equals("navn")) { kPObj.setNavn(element.toString()); } if (rawName.equals("firma")) { System.out.println(m.findFirma(firmaListe,element.toString())); kPObj.setFirma(m.findFirma(firmaListe,element.toString())); } if (rawName.equals("tlf")) { kPObj.setTlf(element.toString()); } if (rawName.equals("mobil")) { kPObj.setMobil(element.toString()); } if (rawName.equals("email")) { kPObj.setEmail(element.toString()); } if (rawName.equals("noter")) { kPObj.setNoter(element.toString()); } if (rawName.equals("oprettet")) { kPObj.setOprettet(element.toString()); } return; } }
Date date; DateFormat df = new SimpleDateFormat("dd-MMM-yyyy HH:mm"); }
I lang tid har samarbejdsbranchen fokuseret på at forbedre enhedsfunktioner – bedre kameraer, klarere lyd og smartere software. Men den virkelige forvandling handler ikke om funktioner.
public String getNavn(){return this.navn;} public String getLand(){return this.land; } public String getAdresse(){return this.adresse; } public String getHusNr(){return this.husNr; } public String getPostNr(){return this.postNr; } public String getBy(){return this.by; } public String getTlf(){return this.tlf; } public String getFax(){return this.fax; } public String getEmail(){return this.email; } public String getNoter(){return this.noter; } public String getOprettet(){return this.oprettet; }
public void setNavn(String navn){this.navn=navn; this.navn=this.navn; } public void setLand(String land){this.land=land; } public void setAdresse(String adresse){this.adresse=adresse; } public void setHusNr(String husNr){this.husNr=husNr; } public void setPostNr(String postNr){this.postNr=postNr; } public void setBy(String by){this.by=by; } public void setTlf(String tlf){this.tlf=tlf; } public void setFax(String fax){this.fax=fax; } public void setEmail(String email){this.email=email; } public void setNoter(String noter){this.noter=noter; } public void setOprettet(String oprettet){this.oprettet=oprettet; }
public String toString() { StringBuffer toString = new StringBuffer(); toString.append(navn); return new String(toString); }
public String getNavn(){return navn; } public String getFirma(){return firma.getNavn();} public String getTlf(){return tlf; } public String getMobil(){return mobil; } public String getEmail(){return email; } public String getNoter(){return noter; } public String getOprettet(){return oprettet; }
public void setNavn(String navn){this.navn=navn; } public void setFirma(Firma firma){this.firma=firma;} public void setTlf(String tlf){this.tlf=tlf; } public void setMobil(String mobil){this.mobil=mobil; } public void setEmail(String email){this.email=email; } public void setNoter(String noter){this.noter=noter; } public void setOprettet(String oprettet){this.oprettet=oprettet; }
public String toString() { StringBuffer toString = new StringBuffer(); toString.append(navn); return new String(toString); }
Det er godt nok en masse kode jeg har postet. Men det er "vist" det bedste at poste det hele nu istedet for at poste noget senere... det kan jo være at man kommer til at rette i noget og ikke lige får sagt det :o(
Den siger godt mok at metoden ikke findes. Jeg tror selv at fejlen ligger i den måde jeg prøver at oprettet kontaktperson objekter på. Jeg tror det er det at et kontaktperson består af et firma objekt, som driller.
Jeg får nu også fejlen når jeg udmarker alt i main metoden kun kalder: ArrayList firmaListe = new ArrayList(); FirmaXml firmDb = new FirmaXml(); firmaListe = firmDb.readFirmaXml("Firma.xml"); firmDb.writeFirmaXml(firmaListe, "Firma.xml");
Efter at have slettet alle class filerne og xml filerne. Kunne jeg godt compile uden at få fejl når jeg blot holdte mig til at oprette et par firmaobjekter og gemmer dem i en xml fil. Men når jeg drager kontaktpersoner med ind og vil gemme dem i xml filer går det galt.
Nu tror jeg godt jeg ved hvor fejlen ligger. Du (arne) postede mig (http://www.eksperten.dk/spm/323710)nogle klasser til at skrive og læse xml filer fra. I en af SAX klasserne er der bla. en innerclass MySaxParser2. Problemet ligger så i at jeg har har en klasse der håndterer xml for Firma og en der håndterer xml for KontakPerson. Men at der disse to klasser indeholder innerclasser der hedder det samme. Jeg prøver lige at lave det om.
Det var det der var galt! :o) Så nu virker det og jeg kan trække objekterne rigtigt ud. Da jeg har Person objekter der består af bla. et Firma objekt har jeg gjort brug af det du foreslog med at genne firmanavnet i person xml, og så ved oprettelsen igen af disse person objekter at søge udfra firma navnet og få returneret et firmaobjekt. :o) :o) Skønt at det bare funker nu, tak for hjælpen igen Arne :o)
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.