Wildfly-Camel 12中的Groovy JsonBuilder类加载错误

时间:2018-05-22 04:19:40

标签: apache-camel jboss7.x wildfly-12

我在Camel路由中的Groovy代码中调用JsonBuilder.toString()。这条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-maven-plugin运行相同的Camel代码时,如果没有在Wildfly中部署它,它运行完美。

有人可以帮忙吗?

提前致谢。

1 个答案:

答案 0 :(得分:2)

我认为问题是模块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>

之后你的例子对我有用。