SecurityException: sealing violation

Skrolan

Grünschnabel
Hallo zusammen,

ich habe bei der Ausführung einer Java-Klasse einige Probleme.

Auszug aus dem Coding:

try {
//Variable declarations
String confFile = "";
Context ctx = new InitialContext();

try {
DataSource DS = (DataSource)ctx.lookup("jdbc/crm");
} catch (Throwable ex) {
System.out.println("JNDI 'jdbc/crm' not found - use local hibernate config file");
}

// Main processing
if (DS == null){
//no application server available, therefore use config w/o JNDI lookup
// ConfigFile aus dem Klassenpfad ziehen.

confFile = "hibernateLocal.cfg.xml";
}
else{
// JNDI lookup available
confFile = "com/igepa/jde/common/util/hibernateJNDI.cfg.xml";
}

// Create the SessionFactory from hibernate.cfg.xml

config = new Configuration().configure(confFile);

sessionFactory = config.buildSessionFactory();
} catch (Throwable ex) {
// Make sure you log the exception, as it might be swallowed
System.err.println("Initial SessionFactory creation failed." + ex);
throw new ExceptionInInitializerError(ex);
}



Die Zuweisung config = new Configuration().configure(confFile);
wirft eine Exception, die im Catch-Block abgefangen wird und folgenden Stack-Trace ausgibt:

Exception in thread "main" java.lang.ExceptionInInitializerError
at com.igepa.jde.common.util.HibernateUtil.<clinit>(HibernateUtil.java:133)
at com.igepa.crm.io.CreateBusinessPartner.CODGetEventAccount.main(CODGetEventAccount.java:270)
Caused by: java.lang.SecurityException: sealing violation: can't seal package com.igepa.jde.common.data: already loaded
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$000(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at org.hibernate.util.ReflectHelper.classForName(ReflectHelper.java:100)
at org.hibernate.util.ReflectHelper.reflectedPropertyClass(ReflectHelper.java:70)
at org.hibernate.mapping.SimpleValue.setTypeUsingReflection(SimpleValue.java:276)
at org.hibernate.cfg.HbmBinder.bindSimpleId(HbmBinder.java:401)
at org.hibernate.cfg.HbmBinder.bindRootPersistentClassCommonValues(HbmBinder.java:334)
at org.hibernate.cfg.HbmBinder.bindRootClass(HbmBinder.java:273)
at org.hibernate.cfg.HbmBinder.bindRoot(HbmBinder.java:144)
at org.hibernate.cfg.Configuration.add(Configuration.java:669)
at org.hibernate.cfg.Configuration.addInputStream(Configuration.java:504)
at org.hibernate.cfg.Configuration.addResource(Configuration.java:566)
at org.hibernate.cfg.Configuration.parseMappingElement(Configuration.java:1587)
at org.hibernate.cfg.Configuration.parseSessionFactory(Configuration.java:1555)
at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1534)
at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1508)
at org.hibernate.cfg.Configuration.configure(Configuration.java:1428)
at com.igepa.jde.common.util.HibernateUtil.<clinit>(HibernateUtil.java:127)
... 1 more


Dabei kann ich mit folgendem Eintrag nichts anfangen:
Caused by: java.lang.SecurityException: sealing violation: can't seal package com.igepa.jde.common.data: already loaded

Die Klasse läuft auf einem anderen Rechner ohne Probleme (Eclipse 3.3, JRE 1.6.0_03, Compiler-Level 6.0)

Auf meinem Rechner habe ich sowohl mit Eclipse 3.2 als auch 3.5, einen Lauf zu starten. Beide Versuche führten zum selben Fehler. Bei mir ist die folgende Runtime-Umgebung installiert JRE 1.6.0_18. Die restlichen Einstellungen in Eclipse sind identisch mit der anderen Maschine. Google hat mir an dieser Stelle nicht wirklich weiterhelfen können. Bin gespannt, ob hier bereits jemand auf dieses Problem gestossen ist und mir weiterhelfen kann. Dafür schon einmal vielen Dank im Voraus. Sollten hier Angaben fehlen, bitte kurze Info.

Gruß
Klaus
 
Hallo,

wie das Leben so spielt, muß man zuerst einen Fehler posten, um die Sache dann doch selbst in den Griff zu bekommen. Der wahrscheinlichste Fehler war der, daß von einem im Build-Path hinzugefügten Projekt, ebendieses Projekt noch einmal als JAR-File im Build-Path vorlag. Dieses JAR-File wird später auf dem WebSphere Server benötigt, nicht aber in Eclipse, wo ich ja bereits das Projekt eingebunden habe. Was auch immer hier "Best-Practice" ist, einbinden des Projektes oder die Arbeit mit JAR-Files, kann ich nicht sagen, aber beides zugleich ist wohl konfliktträchtig.

Vielleicht ist dies aber eine kleine Hilfe, falls mal jemand auf ein ähnlich gelagertes Problem stösst.

vielen Dank
Klaus
 
Hey,


Codes/Scripte bitte im CODE Tag schreiben, sodass jeder andere dies besser lesen kann ;)
Und wenn dein Thema gelöst wurde, kannst du den Thread schließen ;)

bo
 
Zurück