Groovy JsonBuilder ошибка загрузки классов в Wildfly-Camel 12

Я вызываю JsonBuilder.toString() в коде Groovy внутри маршрута Camel. Этот верблюжий маршрут проходит внутри Widlfly Camel 12.0. Код выглядит так:

def builder = new JsonBuilder()
builder {
'myField': myFieldVal
}
return builder.toString()

Вызов метода builder.toString() вызывает следующую ошибку:

Caused by: java.lang.NoClassDefFoundError: Could not initialize class 
groovy.json.internal.FastStringUtils

Но у меня действительно есть зависимости, упомянутые в pom.xml следующим образом:

<dependency>
 <groupId>org.apache.camel</groupId>
 <artifactId>camel-groovy</artifactId>
 <scope>provided</scope>
</dependency>

Я также попытался добавить эту дополнительную зависимость для решения проблемы:

<dependency>
 <groupId>org.codehaus.groovy</groupId>
 <artifactId>groovy-json</artifactId>       
 <version>2.4.13</version>
</dependency>

Но я все еще продолжаю получать вышеуказанное исключение. Однако, когда я запускаю тот же код Camel, используя camel-maven-plugin, без развертывания его внутри Wildfly, он работает отлично.

Может кто-нибудь, пожалуйста, помогите?

Заранее спасибо.

1 ответ

Решение

Я думаю, что проблема в том, что модуль org.apache.camel.script.groovy не может получить доступ sun.misc.Unsafe, Поэтому я добавил следующую зависимость модуля modules/system/layers/fuse/org/apache/camel/script/groovy/main/module.xml,

<module name="sun.jdk">
  <imports>
    <include path="sun/misc/Unsafe"/>
  </imports>
</module>

Ваш пример сработал для меня потом.

Другие вопросы по тегам