我们使用Java 11开发了一个SpringBoot项目,使用optaplanner core
并在Drools文件中定义规则。我们在intelliJ和JDK中运行应用程序没有问题。
然后,我们将该应用部署到安装了JRE的Azure应用服务上。我们得到以下错误:
Caused by: org.kie.memorycompiler.KieMemoryCompilerException:
Cannot find the System's Java compiler. Please use JDK instead of JRE or add drools-ecj dependency to use in memory Eclipse compiler
我们试图添加以下依赖项,但仍然出现相同的错误:
<dependency>
<groupId>org.optaplanner</groupId>
<artifactId>optaplanner-core</artifactId>
<version>8.4.1.Final</version>
</dependency>
<dependency>
<groupId>org.drools</groupId>
<artifactId>drools-ecj</artifactId>
<version>7.51.0.Final</version>
</dependency>
<dependency>
<groupId>org.eclipse.jdt</groupId>
<artifactId>ecj</artifactId>
<version>3.26.0</version>
</dependency>
有人知道如何解决这个问题吗?
非常感谢。
如果您无法使用JDK运行optaplanner,可以将解算器配置更改为
<solver>
<scoreDirectorFactory>
<droolsAlphaNetworkCompilationEnabled>false</droolsAlphaNetworkCompilationEnabled>
</scoreDirectorFactory>
</solver>
如果您正在对使用ConstraintVerifier的java约束使用单元测试,请像下面这样实例化它
new DefaultConstraintVerifier<>(new MyConstraints(), SolutionDescriptor.buildSolutionDescriptor(myModelClasses))
.withDroolsAlphaNetworkCompilationEnabled(false)
但是:据我所知,禁用drools alpha网络编译器通常会对性能产生影响。
添加drools ecj并不能真正解决这个问题。错误信息具有误导性。
使用JDK而不是JRE。最简单的方法是升级到Java11(或更高版本),因为它只附带JDK。
无法将快照工件部署到Nexus存储库。我一直收到返回代码400。无法部署项目:无法传输项目网络。iin:iin-web-0.0.1-snapshot:jar:iin-parent从/到快照(http://localhost:8081/nexus/content/repositories/snapshots/net/iin/iin-web-0.0.1-snapshot/iin-parent/iin-
我使用 VS 2017 制作了一个 MVC 项目,我在本地计算机上使用 IIS 服务器 v10 进行测试,现在我将我的项目上传到带有 Windows 服务器 2008 和 IIS 服务器 v6 的服务器我得到以下编译错误代码 - 2146232576 我已经尝试了以下解决方案编译错误-2146232576使用nuget PM删除包- 我也没有使用web部署工具从VS2017部署项目,我从远程桌面访
我从这里下载了官方的OSMdroid示例。https://github.com/osmdroid/osmdroid,无法在最新的Eclipse IDE和Android SDK上编译osmdroid-android-it Android应用程序。我尝试了API 10和17。 尽管如此,osmdroid-android-it项目不识别src文件夹下的OSMDROID库。 我需要的是自定义MBTiles
2. 项目部署 本章主要介绍如何部署Camel。 首先,介绍Vagrant这个虚拟机工具。借助Vagrant,我们可以保证本地开发及测试环境与线上环境的一致。 随后介绍slb-admin的部署。管理端本地也要安装Dengine,用以测试Nginx配置文件的语法是否正确。此外,还需要部署数据库:MySQL及MongoDB。 最后介绍Nginx服务器的部署。我们可以根据具体需求部署Nginx集群,每台
描述 本文档提供了 3 种部署方式,对应 Jboot 里的 3 种打包方式。 通过 脚本 运行 在 打包方式 文档中,我们可以把项目打包成一个 .zip 的压缩包项目,里面带有 jboot.sh (和 jboot.bat) 执行脚本, 只需要我们解压 .zip 压缩文件,通过如下命令就可以对 jboot 项目进行启动和停止。 # 启动 ./jboot.sh start # 停止 ./jboot.
部署中,你可以先构建打包生成环境代码,再启动服务。因此,构建和启动分为下面两条命令: next build next start 例如,使用now去部署package.json配置文件如下: { "name": "my-app", "dependencies": { "next": "latest" }, "scripts": { "dev": "next",