# Element addContent(Element) gibts nicht



## susa. (4. Jan 2006)

Hallo,

überall sehe ich folgenden Code:

```
rootElement.addContent(irgendeinElement);
```
Aber wenn ich in die JDOM-API gucke, dann finde ich diese Funktion nicht. ALso zumindest nicht mit addContent(Element). Eigentlich würde es mich ja nicht stören, funzt ja trotzdem überall. Der Compiler nölt nicht, Tomcat auch nicht, ABER der IBM Websphere 5.1. meckert rum. 
Frage also: Kann man das irgendwie anders lösen? Hab schon in den APIs rumgesucht, aber hab nie mit Collections o.ä. gearbeitet und auch noch nie von den Klassen Content, Parent etc. gearbeitet.  :bahnhof: 

Hat da irgendjemand ne Idee?!

Vielen Dank schonmal 
susa


----------



## Bleiglanz (4. Jan 2006)

susa. hat gesagt.:
			
		

> ABER der IBM Websphere 5.1. meckert rum.



wie meckert er denn?

eventuell eine falsche Version der JDOM verwendet


----------



## susa. (4. Jan 2006)

Gibt doch bisher nur JDOM 1.0, oder bin ich da falsch informiert?! Und in der API gibts die Funktion ja gar nicht!
Die Fehlermeldung ist diese hier: 


> E SRVE0026E: [Servlet-Fehler]-[(class: XMLerstellen, method: XML signature: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/StringV) Incompatible argument to method]: java.lang.VerifyError: (class: XMLerstellen, method: XML signature: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/StringV) Incompatible argument to method
> at Dasservlet.doGet(Dasservlet.java:89)
> at Dasservlet.doPost(Dasservlet.java:124)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java(Compiled Code))



Die Funktion XML ist die, in der der der Aufruf 
	
	
	
	





```
rootElement.addContent(Element);
```
 stattfindet. Hier mal die Kurzfassung, falls es hilft:

```
public void XML(String eins, String zwei, String drei, String vier, String fünf)
        {
            Document doc;
            Element rootElement;
            Element [] myElements= new Elements[2];
            try 
            {
                file.createNewFile();
                System.out.println("saxbuilder ");
                SAXParserFactory factory = SAXParserFactory.newInstance();
                factory.setValidating(true); 
                SAXParser parser = factory.newSAXParser();

                SAXBuilder builder = new SAXBuilder("org.apache.xerces.parsers.SAXParser", true ); 
                rootElement = new Element("ROOT");
                myElements[0]= new Element("Erstes");
                myElements[0].addContent(eins);
                rootElement.addContent(myElements[0]);
                myElements[1] = new Element("Zweites");
                myElements[1].addContent(zwei);
                rootElement.addContent(myElements[1]);

                doc = new Document();	
                doc.setRootElement(rootElement);
                PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter(file))); 
                org.jdom.output.Format format = org.jdom.output.Format.getPrettyFormat(); 
                new XMLOutputter(format).output(doc, out); 
                out.close();
            }
            catch (Exception e)
            {
                ...
            } 
        }
```

Wenn ich die Funktion ausklammer, funktionierts alles ohne Probs und auch wenn ich nur die Aufrufe der addContents(Element) auskommentiere gibts keine Fehler. Muss also daran liegen.


----------



## Bleiglanz (4. Jan 2006)

Element#addContent(Content child) ist, weil ein Element auch ein Content ist

komische Fehlermeldung: warum die Methode "XML" mit den 5 Strings und nicht der Aufruf weiter unten??

für die 5.1er gilt:


> JDOM (a Java representation of an XML document which provides an API for efficient reading, manipulating and writing documentation). The currently packaged version of JDOM in WebSphere Application Server will not be packaged in future releases of WebSphere.
> 
> Recommended migration action:
> 
> Go to JDOM and get the latest copy of JDOM and bundle it inside your application.


----------



## susa. (4. Jan 2006)

Aso! Jetzt seh ich es auch mit dem Content... Danke *g*
Also ich hab jdom extra auch nochmal neu runtergeladen und nochmal ins Projekt importiert, aber das macht keinen Unterschied 

Hab auch schon fast alles ausprobiert, was drumherum falsch sein könnte. Aber es will nicht 

Habt ihr noch Ideen? ich bin am verzweifeln.


----------



## susa. (4. Jan 2006)

Das Problem ist gelöst!!! *freu* *jubel* :lol: 

Für alle, die zukünftig das gleiche Problem haben:
In der Admin-Konsole auf Enterprise Anwendung, dann auf die Anwendung klicken und bei Module des Klassenladers auf Parent_Last stellen und den Wert dadrunter (Policy für WAR-Klassenlader) auf Anwendung. Dann hats bei mir gefunzt 

Kommt zwar schon der nächste Fehler *g*, aber da werd ich schon was finden *zuversichtlichInDieZukunftBlick* *g*

Danke Bleiglanz!


----------

