heroku - 玩!在 Heroku 上使用 Drools 的框架 [1.2.4]

标签 heroku playframework drools

我尝试将简单的 Web 应用程序与 Drools 规则引擎集成并将其部署在 heroku 上。在 Controller 操作中,我正在执行导入和解析 DRL 文件并返回结果的方法。我注意到了奇怪的行为。当我通过命令 play run 启动应用程序时Drools 不想工作(我收到一些规则导入错误和解析知识异常),但是当我通过 Eclipse 启动我的应用程序时,一切正常。

我已经通过这些不同的方式检查了究竟执行了什么:

  • Eclipse 执行:http://pastebin.com/RK7mnQ81
  • play run执行:http://pastebin.com/UH1rD7pb

  • 我试过运行 play run Eclipse 执行中存在额外的 Java 参数,但我还没有找到工作组合。

    任何想法添加到命令中的参数 play run找到工作解决方案?

    在此先感谢您的帮助。

    堆栈跟踪:
    java.lang.IllegalArgumentException:
        at drools.RuleEngine.readKnowledgeBase(RuleEngine.java:66)
        at drools.RuleEngine.run(RuleEngine.java:28)
        at controllers.Application.index(Application.java:17)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:616)
        at play.mvc.ActionInvoker.invokeWithContinuation(ActionInvoker.java:546)
        at play.mvc.ActionInvoker.invoke(ActionInvoker.java:500)
        at play.mvc.ActionInvoker.invokeControllerMethod(ActionInvoker.java:476)
        at play.mvc.ActionInvoker.invokeControllerMethod(ActionInvoker.java:471)
        at play.mvc.ActionInvoker.invoke(ActionInvoker.java:159)
        at play.server.PlayHandler$NettyInvocation.execute(PlayHandler.java:220)
        at play.Invoker$Invocation.run(Invoker.java:265)
        at play.server.PlayHandler$NettyInvocation.run(PlayHandler.java:200)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
        at java.util.concurrent.FutureTask.run(FutureTask.java:166)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:165)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:266)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
        at java.lang.Thread.run(Thread.java:679)
    

    最佳答案

    好的,我在这里找到了一个解决方案:https://stackoverflow.com/a/7083303/894060
    我将与 Drools 相关的类和规则文件打包在一个 jar 文件中,并将该 jar 放在包含在 classpath 中的一个目录中。 ——它解决了问题。

    关于heroku - 玩!在 Heroku 上使用 Drools 的框架 [1.2.4],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8393036/

    相关文章:

    java - Heroku-Web 进程在启动后 90 秒内无法绑定(bind)到 $PORT。 TooTallNate 网络套接字

    python - "Error while running ' $ python manage.py collectstatic --noinput '"在 django 上更改数据库后

    java - 如何将二维字符串数组从java代码传递到play框架中的scala.html?

    scala - Play Framework 依赖注入(inject)对象与 @Singleton 类

    playframework - Play Framework 安装

    drools - 如何为给定的 JBoss Drool DRL 文件生成 Java 代码?

    java - Android HTTP客户端抛出异常

    ssl - 根域不重定向 DNSimple

    java - KIE Drools Workbench 无法解决 Maven 依赖关系

    java - Drools HelloWorld 示例全新安装抛出空指针