gpt4 book ai didi

java - WebMethods8.2 中的 Axis2 WS 使用者

转载 作者:太空宇宙 更新时间:2023-11-04 07:06:17 28 4
gpt4 key购买 nike

我遇到了一个场景,我必须让一个基于 Axis2 的 ws 消费者在 WebMethods 中作为 java 服务工作。我首先在 netbeans 中实现了 ws Consumer 只是为了看看它是否有效,因此我发现我需要的最小数量的 jar 如下:

[ xmlschema-1.4.7.jar, apache-mime4j-core-0.7.2.jar, axiom-api-1.2.13.jar, axiom-impl-1.2.13.jar, axis2-adb-1.6.2.jar, axis2-kernel-1.6.2.jar, axis2-transport-http-1.6.2.jar, axis2-transport-local-1.6.2.jar, commons-codec-1.3.jar, commons-httpclient-3.1.jar, commons-logging-1.1.1.jar, httpcore-4.0.jar, mail-1.4.jar, neethi-3.0.2.jar, wsdl4j-1.6.2.jar ]

我已将这些 jar 文件上传到 IS/packages/{package_name}/code/jars 文件夹下。每当我尝试执行发送请求并处理响应的 java 服务时,我都会收到以下异常:

java.lang.reflect.InvocationTargetException: org.apache.axiom.om.OMFactory.getMetaFactory()Lorg/apache/axiom/om/OMMetaFactory;

从IS错误日志文件中我发现实际的错误信息如下:

org.apache.axiom.om.OMFactory.getMetaFactory()Lorg/apache/axiom/om/OMMetaFactory; Caused by: java.lang.reflect.InvocationTargetException: null Caused by: java.lang.NoSuchMethodError:org.apache.axiom.om.OMFactory.getMetaFactory()Lorg/apache/axiom/om/OMMetaFactory;

平台是Linux环境下的WebMethods 8.2。 JDK版本为1.6.0_32,WebMethods下的应用服务器为Jetty。

最佳答案

其实这个问题的解决有点棘手。首先,我必须手动在 IS 服务器上配置包的 list 文件,以使用包 abnd 中提供的 jar,这样它就不会与 IS 本身使用的 Axis 发生冲突。另一方面,我必须手动添加 ClassLoader,因为 WebMethods 无法使用 jar 文件中基于 META-INF 的信息。要解决这个问题,只需使用:

System.setProperty("org.apache.axiom.om.OMMetaFactory", "org.apache.axiom.om.impl.llom.factory.OMLinkedListMetaFactory");

这解决了所有问题。

关于java - WebMethods8.2 中的 Axis2 WS 使用者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21330465/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com