WildFly + Drools = GC overhead limit exceeded

99
23 августа 2019, 04:50

Есть такая штука как "Друлз": у него есть веб-приложение, позволяющее писать бизнес-правила прямо в браузере - называется "Business Central Workbench".

Чтобы эту штуку запустить, нужно воспользоваться сервером Jboss, переименованный в WidlFly.

Что ж, сервер запускается, Друлз добавляется... Вот только не запускается.

    ERROR [org.jboss.msc.service.fail] (MSC service thread 1-6) MSC000001: Failed to start service jboss.deployment.unit."business-central-7.16.0.Final-wildfly14.war".WeldStartService: org.jboss.msc.service.StartException in service jboss.deployment.unit."business-central-7.16.0.Final-wildfly14.war".WeldStartService: Failed to start service
        at org.jboss.msc.service.ServiceControllerImpl$StartTask.execute(ServiceControllerImpl.java:1728)
        at org.jboss.msc.service.ServiceControllerImpl$ControllerTask.run(ServiceControllerImpl.java:1556)
        at org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35)
        at org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:1985)
        at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1487)
        at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1378)
        at java.lang.Thread.run(Unknown Source)
Caused by: org.jboss.weld.exceptions.WeldException: GC overhead limit exceeded
        at org.jboss.weld.executor.AbstractExecutorServices.checkForExceptions(AbstractExecutorServices.java:82)
        at org.jboss.weld.executor.AbstractExecutorServices.invokeAllAndCheckForExceptions(AbstractExecutorServices.java:59)
        at org.jboss.weld.executor.AbstractExecutorServices.invokeAllAndCheckForExceptions(AbstractExecutorServices.java:67)
        at org.jboss.weld.bootstrap.ConcurrentValidator.validateObserverMethods(ConcurrentValidator.java:99)
        at org.jboss.weld.bootstrap.Validator.validateDeployment(Validator.java:494)
        at org.jboss.weld.bootstrap.WeldStartup.validateBeans(WeldStartup.java:490)
        at org.jboss.weld.bootstrap.WeldBootstrap.validateBeans(WeldBootstrap.java:93)
        at org.jboss.as.weld.WeldStartService.start(WeldStartService.java:98)
        at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1736)
        at org.jboss.msc.service.ServiceControllerImpl$StartTask.execute(ServiceControllerImpl.java:1698)
        ... 6 more
Caused by: java.lang.OutOfMemoryError: GC overhead limit exceeded
        at java.util.HashMap.newNode(Unknown Source)
        at java.util.HashMap.putVal(Unknown Source)
        at java.util.HashMap.put(Unknown Source)
        at org.jboss.weld.resolution.AbstractTypeSafeBeanResolver$1.mapTypeToBean(AbstractTypeSafeBeanResolver.java:181)
        at org.jboss.weld.resolution.AbstractTypeSafeBeanResolver$1.mapBean(AbstractTypeSafeBeanResolver.java:161)
        at org.jboss.weld.resolution.AbstractTypeSafeBeanResolver$1.computeValue(AbstractTypeSafeBeanResolver.java:153)
        at org.jboss.weld.resolution.AbstractTypeSafeBeanResolver$1.computeValue(AbstractTypeSafeBeanResolver.java:147)
        at org.jboss.weld.util.LazyValueHolder.get(LazyValueHolder.java:46)
        at org.jboss.weld.resolution.AbstractTypeSafeBeanResolver.getBeans(AbstractTypeSafeBeanResolver.java:241)
        at org.jboss.weld.resolution.AbstractTypeSafeBeanResolver.getAllBeans(AbstractTypeSafeBeanResolver.java:220)
        at org.jboss.weld.resolution.TypeSafeResolver.findMatching(TypeSafeResolver.java:102)
        at org.jboss.weld.resolution.TypeSafeResolver.access$000(TypeSafeResolver.java:41)
        at org.jboss.weld.resolution.TypeSafeResolver$ResolvableToBeanCollection.apply(TypeSafeResolver.java:52)
        at org.jboss.weld.resolution.TypeSafeResolver$ResolvableToBeanCollection.apply(TypeSafeResolver.java:43)
        at org.jboss.weld.util.cache.ReentrantMapBackedComputingCache.lambda$null$0(ReentrantMapBackedComputingCache.java:55)
        at org.jboss.weld.util.cache.ReentrantMapBackedComputingCache$$Lambda$742/1033754896.get(Unknown Source)
        at org.jboss.weld.util.LazyValueHolder$1.computeValue(LazyValueHolder.java:32)
        at org.jboss.weld.util.LazyValueHolder.get(LazyValueHolder.java:46)
        at org.jboss.weld.util.cache.ReentrantMapBackedComputingCache.getValue(ReentrantMapBackedComputingCache.java:72)
        at org.jboss.weld.resolution.TypeSafeResolver.resolve(TypeSafeResolver.java:88)
        at org.jboss.weld.manager.BeanManagerImpl.getBeans(BeanManagerImpl.java:517)
        at org.jboss.weld.bootstrap.Validator.validateInjectionPointForDeploymentProblems(Validator.java:376)
        at org.jboss.weld.bootstrap.ConcurrentValidator$4.doWork(ConcurrentValidator.java:104)
        at org.jboss.weld.bootstrap.ConcurrentValidator$4.doWork(ConcurrentValidator.java:99)
        at org.jboss.weld.executor.IterativeWorkerTaskFactory$1.call(IterativeWorkerTaskFactory.java:62)
        at org.jboss.weld.executor.IterativeWorkerTaskFactory$1.call(IterativeWorkerTaskFactory.java:55)
        at java.util.concurrent.FutureTask.run(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)
        at org.jboss.threads.JBossThread.run(JBossThread.java:485)

Попытки использовать комбинации разных версий business-central (это и есть Drools) и WildFly ни к чему не привели. Везде есть такая ошибка.

И тут я не понимаю, что вообще происходит? 1. С чего это у меня переполнение, если на машине стоит 32 Гб ОЗУ. 2. Неужели никто не сталкивался с такой ошибкой? Ведь она появляется сразу, без каких-либо настроек конфигов - значит, она должна быть у многих. Но, судя по поиску, только у меня.

Помогите, пожалуйста, я не знаю, как это лечить.

READ ALSO
Как передать объект в RequestBody?

Как передать объект в RequestBody?

В форме ввожу данные(строка и столбец) и нажимаю на сабмит

113
Синхронизация группы объектов

Синхронизация группы объектов

Доброго времени суток

110
Как работает Get Active Element

Как работает Get Active Element

В appium документации есть Get Active Element

95