So, I'm using Entity includes to be able to separate my rules files into
manageable pieces.  

I've had some problems loading the referenced rule xml files.  Note that I'm
using the Java semantics (I guess that's the right way to say it).

<snip of main rules file>
<?xml version="1.0"?>
<!DOCTYPE rule-set
[   ENTITY LettersMisc-block SYSTEM "LettersMisc.xml" 
    ENTITY LettersTeleFax-block SYSTEM "LettersTeleFax.xml"  ]>

<rule-set name="LettersMain"
          xmlns="http://drools.org/rules";
          xmlns:java="http://drools.org/semantics/java";
          xmlns:xs="http://www.w3.org/2001/XMLSchema-instance";
          xs:schemaLocation="http://drools.org/rules rules.xsd
                             http://drools.org/semantics/java java.xsd">

  <import>java.lang.Object</import>
  <import>test123.*</import>
  <import>com.nrs.cats.transfer.*</import>

  <application-data identifier="setHelper">SetHelper</application-data>
  <application-data
identifier="condition">LetterConditionHelper</application-data>
  <application-data
identifier="consequence">LetterConsequenceHelper</application-data>

  &LettersMisc-block;
  &LettersTeleFax-block;

</snip>


I had some real trouble loading any rule files from an executable type jar.  I
was finally able to make it work using the jar file syntax like this:

        String cp = System.getProperty("java.class.path");
        cp = cp.replace('\\', '/');
        URI uri = new URI("jar:file:"+cp+"!/"+"other/LettersMain.xml");
        // Above method of course bombs when I'm running from a dir of files

The other two rules files are sitting in the same "other" directory as
LettersMain.xml

So, my prototype was working.  However, when I went and tried the same
technique in my ear file, it didn't work.  I think much of this has to do with
classloaders, and from what I've learned, it appears that classloaders do
things all differently.  I also think the issue might be one of JBuilder
and/or the SAX parser.

Here is the exception I get when I try to use the same technique with the ear
file.  My guess is that JBuilder has a lock of some sort on the ear file.

Any help or suggestions appreciated.

2006-03-30 12:09:55,609 ERROR  - java.util.zip.ZipException: Access is denied
2006-03-30 12:09:55,609 ERROR  -        at java.util.zip.ZipFile.open(Native 
Method)
2006-03-30 12:09:55,609 ERROR  -        at
java.util.zip.ZipFile.<init>(ZipFile.java:112)
2006-03-30 12:09:55,609 ERROR  -        at
java.util.jar.JarFile.<init>(JarFile.java:127)
2006-03-30 12:09:55,609 ERROR  -        at
java.util.jar.JarFile.<init>(JarFile.java:65)
2006-03-30 12:09:55,609 ERROR  -        at
sun.net.www.protocol.jar.URLJarFile.<init>(URLJarFile.java:55)
2006-03-30 12:09:55,609 ERROR  -        at
sun.net.www.protocol.jar.URLJarFile.getJarFile(URLJarFile.java:40)
2006-03-30 12:09:55,609 ERROR  -        at
sun.net.www.protocol.jar.JarFileFactory.get(JarFileFactory.java:63)
2006-03-30 12:09:55,609 ERROR  -        at
sun.net.www.protocol.jar.JarURLConnection.connect(JarURLConnection.java:85)
2006-03-30 12:09:55,609 ERROR  -        at
sun.net.www.protocol.jar.JarURLConnection.getInputStream(JarURLConnection.java:107)
2006-03-30 12:09:55,609 ERROR  -        at java.net.URL.openStream(URL.java:913)
2006-03-30 12:09:55,609 ERROR  -        at
org.apache.xerces.impl.XMLEntityManager.setupCurrentEntity(Unknown Source)
2006-03-30 12:09:55,609 ERROR  -        at
org.apache.xerces.impl.XMLVersionDetector.determineDocVersion(Unknown Source)
2006-03-30 12:09:55,609 ERROR  -        at
org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
2006-03-30 12:09:55,609 ERROR  -        at
org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
2006-03-30 12:09:55,625 ERROR  -        at
org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
2006-03-30 12:09:55,625 ERROR  -        at
org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
2006-03-30 12:09:55,625 ERROR  -        at
javax.xml.parsers.SAXParser.parse(SAXParser.java:345)
2006-03-30 12:09:55,625 ERROR  -        at
org.drools.io.RuleSetReader.read(RuleSetReader.java:443)
2006-03-30 12:09:55,625 ERROR  -        at
org.drools.io.RuleSetReader.read(RuleSetReader.java:309)
2006-03-30 12:09:55,625 ERROR  -        at
org.drools.io.RuleBaseLoader.loadFromUrl(RuleBaseLoader.java:155)
2006-03-30 12:09:55,625 ERROR  -        at
org.drools.io.RuleBaseLoader.loadFromUrl(RuleBaseLoader.java:115)
2006-03-30 12:09:55,625 ERROR  -        at
org.drools.io.RuleBaseLoader.loadFromUrl(RuleBaseLoader.java:100)
2006-03-30 12:09:55,625 ERROR  -        at
com.nrs.cats.service.ejb.helper.LetterHelper.applyBasicRules(LetterHelper.java:493)
2006-03-30 12:09:55,625 ERROR  -        at
com.nrs.cats.service.ejb.helper.LetterHelper.exportLetterRequests(LetterHelper.java:143)
2006-03-30 12:09:55,625 ERROR  -        at
com.nrs.cats.service.ejb.helper.AccountantServiceBeanHelper.exportLetterRequests(AccountantServiceBeanHelper.java:154)
2006-03-30 12:09:55,625 ERROR  -        at
com.nrs.cats.service.ejb.AccountantServiceBean.exportLetterRequests(AccountantServiceBean.java:1856)
2006-03-30 12:09:55,625 ERROR  -        at
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
2006-03-30 12:09:55,625 ERROR  -        at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
2006-03-30 12:09:55,625 ERROR  -        at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
2006-03-30 12:09:55,625 ERROR  -        at
java.lang.reflect.Method.invoke(Method.java:324)
2006-03-30 12:09:55,640 ERROR  -        at
com.inprise.ejb.ConcreteMethod.invoke(ConcreteMethod.java:32)
2006-03-30 12:09:55,640 ERROR  -        at
com.inprise.ejb.EJBContext.invoke(EJBContext.java:166)
2006-03-30 12:09:55,640 ERROR  -        at
com.inprise.ejb.Dispatcher.doInvoke(Dispatcher.java:1357)
2006-03-30 12:09:55,640 ERROR  -        at
com.inprise.ejb.Dispatcher.invokeSecurityCheck(Dispatcher.java:1065)
2006-03-30 12:09:55,640 ERROR  -        at
com.inprise.ejb.Dispatcher.invoke(Dispatcher.java:827)
2006-03-30 12:09:55,640 ERROR  -        at
com.inprise.ejb.Dispatcher.invoke(Dispatcher.java:603)
2006-03-30 12:09:55,640 ERROR  -        at
com.inprise.ejb.EJBHome.dispatcherInvokeBeanMethod(EJBHome.java:84)
2006-03-30 12:09:55,640 ERROR  -        at
com.inprise.ejb.EJBHome$ComponentInterfaceMethodCache.invokeDispatcherMethod(EJBHome.java:1581)
2006-03-30 12:09:55,640 ERROR  -        at
com.inprise.ejb.EJBHome.invokeDispatcherMethod(EJBHome.java:62)
2006-03-30 12:09:55,640 ERROR  -        at
com.inprise.ejb.Dispatcher.invoke(Dispatcher.java:429)
2006-03-30 12:09:55,640 ERROR  -        at
com.nrs.cats.service.ejb.AccountantServicePOAInvokeHandler.exportLetterRequests(AccountantServicePOAInvokeHandler.java:964)
2006-03-30 12:09:55,640 ERROR  -        at
com.nrs.cats.service.ejb.AccountantServicePOAInvokeHandler.exportLetterRequests(AccountantServicePOAInvokeHandler.java:2973)
2006-03-30 12:09:55,640 ERROR  -        at
com.nrs.cats.service.ejb.AccountantServicePOA._invoke(AccountantServicePOA.java:790)
2006-03-30 12:09:55,640 ERROR  -        at
com.nrs.cats.service.ejb.AccountantServicePOA._invoke(AccountantServicePOA.java:305)
2006-03-30 12:09:55,640 ERROR  -        at
com.inprise.vbroker.poa.POAImpl.invoke(POAImpl.java:2916)
2006-03-30 12:09:55,640 ERROR  -        at
com.inprise.vbroker.poa.ActivationRecord.invoke(ActivationRecord.java:187)
2006-03-30 12:09:55,656 ERROR  -        at
com.inprise.vbroker.poa.ServerInterceptorManager$ARWrapper.invoke(ServerInterceptorManager.java:115)
2006-03-30 12:09:55,656 ERROR  -        at
com.inprise.vbroker.GIOP.GiopProtocolAdapter.doRequest(GiopProtocolAdapter.java:868)
2006-03-30 12:09:55,656 ERROR  -        at
com.inprise.vbroker.IIOP.ServerProtocolAdapter.doRequest(ServerProtocolAdapter.java:68)
2006-03-30 12:09:55,656 ERROR  -        at
com.inprise.vbroker.GIOP.GiopProtocolAdapter.dispatchMessage(GiopProtocolAdapter.java:1158)
2006-03-30 12:09:55,656 ERROR  -        at
com.inprise.vbroker.orb.TPDispatcherImpl$TPDispatcher.run(TPDispatcherImpl.java:111)
2006-03-30 12:09:55,656 ERROR  -        at
com.inprise.vbroker.orb.ThreadPool$PoolWorker.run(ThreadPool.java:95)



Reply via email to