Hi Steven,

Unfortunatelly, I didn't try working with drools + WS, so I can't help with the problem, but just to explain what drools is trying to do: current version needs access to the actual class file for classes used as "facts" in your network, in order to read the bytecode and index class properties (getter methods).

As a side note, we will try to remove this requirement in the future, but we are not sure yet how can we garantee that the order of the getter methods will not change from one JVM to another without reading the class bytecode.

   []s
   Edson


Steven Williams wrote:

Hi all,
We are using WebSphere 6.1 with java security switched on and get the following error when we attempt to run drools:


Permission:

\D:\WS_STAGE2\ec_ejb\bin\au\gov\vic\dse\lx\ec\Message.class : Access denied ( java.io.FilePermission \D:\WS_STAGE2\ec_ejb\bin\au\gov\vic\dse\lx\ec\Message.class read)

Code:

org.drools.base.au.gov.vic.dse.lx.ec.Message$getStatus in {null code URL}

Stack Trace:

java.security.AccessControlException : Access denied (java.io.FilePermission \D:\WS_STAGE2\ec_ejb\bin\au\gov\vic\dse\lx\ec\Message.class read) at java.security.AccessController.checkPermission(AccessController.java:104) at java.lang.SecurityManager.checkPermission (SecurityManager.java:547) at com.ibm.ws.security.core.SecurityManager.checkPermission(SecurityManager.java:189) at com.ibm.ws.classloader.SinglePathClassProvider.check(SinglePathClassProvider.java:444) at com.ibm.ws.classloader.SinglePathClassProvider.checkURL(SinglePathClassProvider.java:431) at com.ibm.ws.classloader.SinglePathClassProvider.getResource(SinglePathClassProvider.java:423) at com.ibm.ws.classloader.SinglePathClassProvider.getResourceAsStream(SinglePathClassProvider.java:458) at com.ibm.ws.classloader.CompoundClassLoader.localGetResourceAsStream(CompoundClassLoader.java:926) at com.ibm.ws.classloader.CompoundClassLoader.getResourceAsStream(CompoundClassLoader.java:887)
        at java.lang.Class.getResourceAsStream(Class.java:1124)
at org.drools.util.asm.ClassFieldInspector.processClass (Unknown Source)
        at org.drools.util.asm.ClassFieldInspector.<init>(Unknown Source)
        at org.drools.base.BaseClassFieldExtractor.<init>(Unknown Source)
at org.drools.base.au.gov.vic.dse.lx.ec.Message$getStatus .<init>(Unknown Source) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:67) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:521)
at org.drools.base.ClassFieldExtractorFactory.getClassFieldExtractor (Unknown Source)
        at org.drools.base.ClassFieldExtractor.init(Unknown Source)
        at org.drools.base.ClassFieldExtractor.<init>(Unknown Source)
at org.drools.base.ClassFieldExtractorCache.getExtractor (Unknown Source) at org.drools.semantics.java.RuleBuilder.getFieldExtractor(Unknown Source)
        at org.drools.semantics.java.RuleBuilder.build(Unknown Source)
        at org.drools.semantics.java.RuleBuilder.build (Unknown Source)
        at org.drools.semantics.java.RuleBuilder.build(Unknown Source)
        at org.drools.semantics.java.RuleBuilder.build(Unknown Source)
        at org.drools.compiler.PackageBuilder.addRule (Unknown Source)
        at org.drools.compiler.PackageBuilder.addPackage(Unknown Source)
at org.drools.compiler.PackageBuilder.addPackageFromDrl(Unknown Source)
        at au.gov.vic.dse.lx.ec.DroolsTest.readRule (DroolsTest.java:62)
It looks to me like the drools generated Message class (org.drools.base.au.gov.vic.dse.lx.ec.Message) is failing when it attempts to access the application Message.class via its getStatus method. We have added java.security.AllPermission everywhere we can think of (was.policy, app.policy, library.policy, server.policy) and it still does not work. Has anybody got drools working in a WebSphere environment (any version) with java security turned on? I noticed that there used to be a problem with cglib where the generated classes did not get the same protection domain as the cglib.jar (http://jira.atlassian.com/browse/CONF-5955 <http://jira.atlassian.com/browse/CONF-5955>, http://forum.hibernate.org/viewtopic.php?p=2190363). I know we are using ASM but maybe it also has a similar problem? thanks
Steve

--
Steven Williams

Supervising Consultant

Object Consulting
Office: 8615 4500 Mob: 0439 898 668 Fax: 8615 4501
[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>
www.objectconsulting.com.au <http://www.objectconsulting.com.au>

consulting | development | training | support
our experience makes the difference



--
 ---
 Edson Tirelli
 Software Engineer - JBoss Rules Core Developer
 Office: +55 11 3124-6000
 Mobile: +55 11 9218-4151
 JBoss, a division of Red Hat @ www.jboss.com

 IT executives: Red Hat still #1 for value
http://www.redhat.com/promo/vendor/

---------------------------------------------------------------------
To unsubscribe from this list please visit:

   http://xircles.codehaus.org/manage_email

Reply via email to