当前位置: 首页 > 知识库问答 >
问题:

Grails新版本中的Drools异常

涂选
2023-03-14

首先,我指的是这个问题(LINK),它对我没有帮助,因为当时框架的版本较低,所以我开始了新的问题。

所以我正在使用Grails 2.4.3框架,并尝试在其中使用Drools规则引擎。Java版本是1.0。8_20和groovy版本是2.3.9。BuildConfig中的依赖项是:

runtime 'org.drools:drools-core:5.5.0.Final'
runtime 'org.drools:knowledge-api:5.5.0.Final'

在这行代码中:

KnowledgeBuilder knowledgeBuilder = KnowledgeBuilderFactory.newKnowledgeBuilder()

我得到这个例外:

Error initializing the application: com/sun/tools/xjc/Options
Caused by ClassNotFoundException: com.sun.tools.xjc.Options

我曾尝试将drools core/knowledge api的版本更改为更高的版本(高达6.0.1.Final),但仍会遇到相同的错误。我还尝试导入这个奇怪的xjc依赖项,正如我在一开始提到的帖子中所述,但没有成功。

有人知道这个问题的解决方案是什么吗?

Btw全栈跟踪是:

| Error 2014-12-19 18:04:49,851 [localhost-startStop-1] ERROR context.GrailsContextLoaderListener  - Error initializing Grails: com/sun/tools/xjc/Options
Message: com/sun/tools/xjc/Options
    Line | Method
->> 2688 | privateGetDeclaredMethods        in java.lang.Class
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
|   1962 | getDeclaredMethods               in     ''
|     46 | getLocked . . . . . . . . . . .  in org.codehaus.groovy.util.LazyReference
|     33 | get                              in     ''
|     46 | doCall . . . . . . . . . . . . . in account.manager.rule.knowledge.Knowledge$_initialize_closure1
|     43 | initialize                       in account.manager.rule.knowledge.Knowledge
|     39 | $tt__initialize . . . . . . . .  in account.manager.RuleSyncService
|     24 | doCall                           in BootStrap$_closure1
|    327 | evaluateEnvironmentSpecificBlock in grails.util.Environment
|    320 | executeForEnvironment            in     ''
|    296 | executeForCurrentEnvironment . . in     ''
|    266 | run                              in java.util.concurrent.FutureTask
|   1142 | runWorker . . . . . . . . . . .  in java.util.concurrent.ThreadPoolExecutor
|    617 | run                              in java.util.concurrent.ThreadPoolExecutor$Worker
^    745 | run . . . . . . . . . . . . . .  in java.lang.Thread
Caused by ClassNotFoundException: com.sun.tools.xjc.Options

共有1个答案

虞华翰
2023-03-14

com/sun/tools/xjc/Options。类位于jar jaxb xjc中。JAXB发行版附带的jar。通常是javax。xml。bind和xjc工具可以通过JDK和Java二进制文件获得。但是,如果某个应用程序需要通过其API调用XML模式编译器,那么jar中包含的各个类必须可用。

 类似资料:
  • 我读过很多关于Drools Guvnor和Drools Planner互动的东西。创建和更改规则是非常有用的,而不需要对它们进行编码。但我读过Guvnor是一个WebApplication。

  • Vaadin已经有了7.5.8版,但是插件似乎使用了7.5.2版(https://grails.org/plugin/vaadin).我有没有办法得到最新版本的Vaadin?

  • 我刚刚从SVN下载了一个grails项目。 我看到不受支持的Major.Minor版本是S.O.上的一个众所周知的问题。由于运行时和编译时使用的JDK版本不匹配而导致。 但我使用的是与下面相同的版本: 外壳: JAVA构建路径: 请告诉我,我错过了什么,仍然有下面的错误? 我通过右键单击Project->Run-as->grailsCommand(run-app)来运行它

  • 目前我正在使用ApacheBeam2.18。GCP(数据流)中的0,我想将其更新为2.20。0 问题是,如果我使用2.20,我会出现以下错误。0而不是2.18。我的pom文件中的0: 我已经看到了其他类似的问题,但我看不到任何与apache梁的关系。 我应该添加或删除哪个依赖项? 这是我的pom文件的样子: 如果我排除以下内容: 关于依赖项的错误消失了,但是,如果我这样做,我将无法完成项目的编译,

  • 我在一个按钮上有一个ussd代码。我在清单中添加了CALL_PHONE权限。我使用sdk版本(23)。此代码不能正常工作。 基本上我该怎么做?谢谢。 我有以下错误: ?e/AndroidRuntime:致命异常:主进程:com.mahdishekari.MyCollectBill,PID:31738 java.lang.SecurityException:权限拒绝:从ProcessRecord{4

  • electron-vue 自 2016年5月初 创建以来有了很大的发展,并引入了许多新奇的功能。你能相信有一段时间该项目还不支持 vue-cli 脚手架吗?新功能的开发计划不会停止。唯一的缺点是,每天都有华而不实的东西存在,进而把你的项目卡在一个老的脚手架上。尽管 electron-vue 利用了 vue-cli 的优势,遗憾的是,并没有一个结构化的方式来 版本化 (version) 样板 或 使