Jena + Pellet + Slick in an applet

296 views Asked by At

I am trying to integrate Jena libs, Pellet and some RPG 2d library Slick all together in an applet. So basically when I run the applet in the browser I get this file permission error (the jars I am using are all signed):

   Exception in thread "Thread-15" java.lang.ExceptionInInitializerError
    at org.mindswap.pellet.ABox.<init>(ABox.java:208)
    at org.mindswap.pellet.KnowledgeBase.clear(KnowledgeBase.java:540)
    at org.mindswap.pellet.KnowledgeBase.<init>(KnowledgeBase.java:418)
    at org.mindswap.pellet.jena.PelletInfGraph.<init>(PelletInfGraph.java:99)
    at org.mindswap.pellet.jena.PelletReasoner.bind(PelletReasoner.java:95)
    at org.mindswap.pellet.jena.PelletReasoner.bind(PelletReasoner.java:53)
    at com.hp.hpl.jena.ontology.impl.OntModelImpl.generateGraph(OntModelImpl.java:2744)
    at com.hp.hpl.jena.ontology.impl.OntModelImpl.<init>(OntModelImpl.java:139)
    at com.hp.hpl.jena.ontology.impl.OntModelImpl.<init>(OntModelImpl.java:128)
    at com.hp.hpl.jena.rdf.model.ModelFactory.createOntologyModel(ModelFactory.java:410)
    at RPGGame.GameSelectionScreen.init(GameSelectionScreen.java:170)
    at RPGGame.RPGGame.initStatesList(RPGGame.java:39)
    at org.newdawn.slick.state.StateBasedGame.init(StateBasedGame.java:164)
    at org.newdawn.slick.AppletGameContainer$Container.initApplet(AppletGameContainer.java:272)
    at org.newdawn.slick.AppletGameContainer$ContainerPanel.initGL(AppletGameContainer.java:229)
    at org.newdawn.slick.AppletGameContainer$ContainerPanel.start(AppletGameContainer.java:216)
    at org.newdawn.slick.AppletGameContainer$1.run(AppletGameContainer.java:92)
    Caused by: java.security.AccessControlException: access denied      ("java.util.PropertyPermission"     "pellet.configuration" "read")
    at java.security.AccessControlContext.checkPermission(Unknown Source)
    at java.security.AccessController.checkPermission(Unknown Source)
    at java.lang.SecurityManager.checkPermission(Unknown Source)
    at java.lang.SecurityManager.checkPropertyAccess(Unknown Source)
    at java.lang.System.getProperty(Unknown Source)
    at org.mindswap.pellet.PelletOptions.<clinit>(PelletOptions.java:805)

Thanks in advance, Ioana

1

There are 1 answers

1
Michael On

The error is because ABox is trying to read information out of PelletOptions, which needs to load the Pellet configuration. It will usually try to read this out of the jar, but first, it double checks if the user specified in the system properties a different location than the default. It's this check that is causing the error.

You can just modify PelletOptions to always check in the jar and avoid the system properties check, or you might be able to twiddle the applet security stuff to make this ok (I don't know if that's possible, never used an Applet before).