【问题标题】:Custom Mule Cloud Connector with Axis2 Client带有 Axis2 客户端的自定义 Mule 云连接器
【发布时间】:2015-12-07 01:51:32
【问题描述】:

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

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


消息:null (java.lang.ExceptionInInitializerError)。 消息有效负载的类型:字符串类型: org.mule.api.MessagingException 代码:MULE_ERROR--2 Java文档: 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. 空(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) ****************************************************** ****************************** 根异常堆栈跟踪:java.lang.NullPointerException at org.apache.axiom.locator.DefaultOMMetaFactoryLocator.(DefaultOMMetaFactoryLocator.java:72)

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

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

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

附加信息:

Axis2 1.6.3 公理* 1.2.14 骡子 ESB 3.7

【问题讨论】:

    标签: mule axis2 mule-studio axiom


    【解决方案1】:

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

    【讨论】:

    • 你是对的,我故意将它加载到引导类加载器中。 Mule ESB 3.7 引用了旧版本的 Axiom。如果我没有在引导程序中加载它,由于 Axiom 的旧版本,我会收到一个未找到方法的错误。
    • 我认为正确的做法是将 JAR 添加到 $MULE_HOME/lib/user。
    • 如果我切换到你提到的方式,我会得到以下信息(至少我认为我做得对,我在运行配置中添加了 Axis2 1.6.3 以使用库):消息:org .apache.axiom.om.OMAbstractFactory.getMetaFactory()Lorg/apache/axiom/om/OMMetaFactory; (java.lang.NoSuchMethodError)。消息负载的类型:字符串类型:org.mule.api.MessagingException 代码:MULE_ERROR--2 JavaDoc:
    • 对上面的更正,我在运行配置中将 Axis2 1.6.3 库添加到类路径下的“用户条目”中
    • 我指的是docs.mulesoft.com/mule-user-guide/v/3.7/…中的第2项。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-15
    • 2018-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多