0

我为 Mule 开发了一个自定义云连接器。我已经使用 Maven 在 IntelliJ 中开发了它。我使用 Axis2 和 XMLBeans 从第 3 方 WSDL 生成代码。我开发了测试用例,在与 Web 服务交互后通过并显示预期结果。“mvn clean package”成功通过了所有测试并构建了站点。

我遇到的问题是在构建 Mule 项目的任何时候都使用它。在启动应用程序时,我已将 Axis2 1.6.3 库添加到由 Anypoint 创建的 jvm 的类路径根目录中。当我提交与我的连接器交互的请求时,我收到以下错误:


消息:空(java.lang.ExceptionInInitializerError)。消息负载的类型:字符串类型:org.mule.api.MessagingException 代码:MULE_ERROR--2 JavaDoc: http: //www.mulesoft.org/docs/site/current3/apidocs/org/mule/api/MessagingException。 html 有效负载:测试********************************************** ************************************ 异常堆栈为: 1. null (java.lang.NullPointerException) org. apache.axiom.locator.DefaultOMMetaFactoryLocator:72 (null) 2. null (java.lang.ExceptionInInitializerError) org.apache.axis2.description.AxisDescription:72 (null) 3. null (java.lang.ExceptionInInitializerError)。消息负载的类型:字符串(org.mule.api.MessagingException)
org.mule.execution.ExceptionToMessagingExceptionExecutionInterceptor:32 ( http://www.mulesoft.org/docs/site/current3/apidocs/org/mule/api/MessagingException.html ) ************ ****************************************************** ****************** 根异常堆栈跟踪:org.apache.axiom.locator.DefaultOMMetaFactoryLocator.(DefaultOMMetaFactoryLocator.java:72) 处的 java.lang.NullPointerException

查看 DefaultOMMetaFactoryLocator,对于 axiom-api1.2.14,我在第 72 行看到以下内容:

枚举 e = classLoader.getResources(ImplementationFactory.DESCRIPTOR_RESOURCE);

静态引用指向 axiom.xml 文件。我已尝试手动添加文件,但继续出现空指针错误。生成的代码使用此代码通过客户端建立连接,但不受我的代码直接影响。能够在 Mule ESB 的云连接器中使用 Axis2 有什么我缺少的吗?为什么它会在 Maven 测试中起作用,但在任何时候都不起作用?

附加信息:

Axis2 1.6.3 Axiom* 1.2.14 Mule ESB 3.7

4

1 回答 1

0

该错误表明 Axiom 是由 JVM 的引导类加载器加载的。我怀疑这样做是在 Anypoint 上部署东西的推荐方式。

于 2015-12-07T20:52:29.497 回答