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>
Ваш пример сработал для меня потом.