JSF JSF und JFreeChart, XML -> System.setProperty

F.S.WhiTeY

Bekanntes Mitglied
Moin Leute!

Ich versuche gerade JSF und JFreeChart zum laufen zu bringen. Ich bekomme folgende Exception:

Code:
java.lang.AbstractMethodError: gnu.xml.dom.DomElement.getTextContent()Ljava/lang/String;

Nach ein wenig googlen bin ich auf folgenden Beitrag gestoßen :

I quickly realized that if I set the environment variable javax.xml.parsers.DocumentBuilderFactory to com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl it would solve the problem.
I chose the xerces string from debugging and looking at the DocumentFactory instance. :D

This is an excerpt from the actual code.

System.setProperty("javax.xml.parsers.DocumentBuilderFactory", "com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl");
DocumentBuilderFactory domFactory = DocumentBuilderFactory.newInstance();

Lost in heapspace: Specify DocumentBuilderFactory with multiple XML implementations


Ich hab nicht ganz verstanden was er mit folgender Aussage meinte:
I chose the xerces string from debugging and looking at the DocumentFactory instance. :D

Dennoch bin ich das Problem angegangen und habe versucht das gleiche über einen WebListener zu lösen:

Java:
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.annotation.WebListener;
import javax.xml.parsers.DocumentBuilderFactory;

/**
 * Web application lifecycle listener.
 * @author david
 */
@WebListener()
public class XMLListener implements ServletContextListener {

    @Override
    public void contextInitialized(ServletContextEvent sce) {
        System.setProperty("javax.xml.parsers.DocumentBuilderFactory", 
                "com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl");
    }

    @Override
    public void contextDestroyed(ServletContextEvent sce) {
        //Nothing here!
    }
}

Das klappt leider nicht, auch nicht mit der
Code:
DocumentBuilderFactory.newInstance();
, ich habe beides probiert.


Hat jemand noch eine Idee? Ich muss das Problem echt dringend in den Griff bekommen. Wollte eigentlich PrimeFaces-Charts benutzen, die lassen sich allerdings dank HTML 5 weder Exportieren (PDF) noch anständig drucken. Da fehlen dann immer 2/3 vom Diagramm. Daher die Wahl von JFreeChart.


Ich hoffe ihr könnt mir helfen.


LG

David
 

F.S.WhiTeY

Bekanntes Mitglied
Kleines Update:

Ich glaube der Listener wird garnicht aufgerufen, zumindest nicht früh genug. Ich hab ein kleine Ausgabe in den Code eingebaut, allerdings sehe ich die nicht in den Logs.

Java:
    @Override
    public void contextInitialized(ServletContextEvent sce) {
        System.out.println("##########---Listener ---##########");
        System.setProperty("javax.xml.parsers.DocumentBuilderFactory", 
                "com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl");
        DocumentBuilderFactory domFactory = DocumentBuilderFactory.newInstance();
    }
 

F.S.WhiTeY

Bekanntes Mitglied
Ok Problem gelöst, ich hab die störende jar gefunden. War zwar so nicht geplant aber naja.
Der Listener wird jetzt btw. auch gecalled nachhdem die jar raus ist.
 

Ähnliche Java Themen

Neue Themen


Oben