Java 在Eclipse中构建Drools 4项目时遇到的问题
我在编译drools 4项目时遇到问题。规则文件中有个错误,说Java 在Eclipse中构建Drools 4项目时遇到的问题,java,eclipse,drools,building,Java,Eclipse,Drools,Building,我在编译drools 4项目时遇到问题。规则文件中有个错误,说 Only a type can be imported. <<MyClassName>> resolves to a package 只能导入类型。解析为一个包 因此,增量编译器无法工作。如何修复这些错误或让eclipse忽略它们?这个问题是在从中迁移时提到的,那么您使用的是什么版本的eclipse和drools 这可能与以下情况有关: 使用调试器,我意识到DroolsPackageBuilder试图从
Only a type can be imported. <<MyClassName>> resolves to a package
只能导入类型。解析为一个包
因此,增量编译器无法工作。如何修复这些错误或让eclipse忽略它们?这个问题是在从中迁移时提到的,那么您使用的是什么版本的eclipse和drools 这可能与以下情况有关: 使用调试器,我意识到Drools
PackageBuilder
试图从
此ClassLoader
不包含我的代理类!即使系统类加载器也不包含我的类
解决办法是:
与其创建普通的PackageBuilder
和RuleBase
实例,不如使用PackageBuilderConfiguration
和RuleBaseConfiguration
创建它们,并配置当前的classLoader
:
嗯,我清理了项目,解决了问题。请确保规则中使用的MyClassName或任何其他类位于jar文件中,jar文件位于classpath中。您好,感谢您的回复。我的同事collegue刚刚告诉我,我们没有迁移,我们一直使用Drools版本4。对不起,我应该说得很清楚,以免你打出来。从你自己的错误中接受你自己的答案有点愚蠢:/
Thread.currentThread().getContextClassLoader();
ClassLoader classLoader = this.getClass().getClassLoader();
PackageBuilderConfiguration configuration = new PackageBuilderConfiguration();
configuration.setClassLoader(classLoader);
PackageBuilder builder = new PackageBuilder(configuration);
builder.addPackageFromDrl(source);
RuleBaseConfiguration ruleBaseConfiguration = new RuleBaseConfiguration();
ruleBaseConfiguration.setClassLoader(classLoader);
ruleBase = RuleBaseFactory.newRuleBase(ruleBaseConfiguration);
ruleBase.addPackage(builder.getPackage());