Groovy Wildfly-Camel 12 中的 JsonBuilder 类加载错误
Groovy JsonBuilder classloading error in Wildfly-Camel 12
我正在 Camel 路由中的 Groovy 代码中调用 JsonBuilder.toString()。这条 Camel 路线 运行s 在 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-maven-plugin 的相同 Camel 代码时,没有将它部署在 Wildfly 中,它 运行 非常完美。
有人可以帮忙吗?
提前致谢。
我认为问题在于模块 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>
你的例子后来对我有用。
我正在 Camel 路由中的 Groovy 代码中调用 JsonBuilder.toString()。这条 Camel 路线 运行s 在 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-maven-plugin 的相同 Camel 代码时,没有将它部署在 Wildfly 中,它 运行 非常完美。
有人可以帮忙吗?
提前致谢。
我认为问题在于模块 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>
你的例子后来对我有用。