gpt4 book ai didi

wso2 - 为 wso2 api 管理器创建包含多个第三方库的自定义处理程序

转载 作者:行者123 更新时间:2023-12-05 05:23:42 24 4
gpt4 key购买 nike

我需要创建自定义处理程序以包含在 WSO2 api 管理器中(我使用 1.10.0 版)。我的自定义处理程序依赖于 org.apache.httpcomponents.httpasyncclient-4.1 包中的 org.apache.http.impl.nio.client.CloseableHttpAsyncClient 类。此依赖项还包括一些第三方库,例如 org.apache.httpcomponents.httpclient-4.4.1。

按照此说明 https://docs.wso2.com/display/AM1100/Writing+Custom+Handlers ,jar 需要放在/repository/components/lib 中。所以我将我的自定义处理程序 jar 与它的所有依赖项 jar 文件放在一起。

但是当我重新启动 wso2am 时,我得到了一些未找到类的异常。

titlement.internal.SchemaBuilder}
TID: [-1234] [] [2016-04-25 17:14:28,659] FATAL {org.wso2.carbon.mediation.initializer.ServiceBusInitializer} - Failed to initialize ESB due to a fatal error {org.wso2.carbon.mediation.initializer.ServiceBusInitializer}
java.lang.NoClassDefFoundError: org/apache/http/conn/util/PublicSuffixMatcherLoader
at org.apache.http.impl.nio.client.HttpAsyncClientBuilder.build(HttpAsyncClientBuilder.java:642)
at id.co.telkom.dds.oam.wso2am.handler.api.client.BillingAPIClient.<init>(BillingAPIClient.java:28)
at id.co.telkom.dds.oam.wso2am.handler.BillingHandler.<init>(BillingHandler.java:26)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:422)
at java.lang.Class.newInstance(Class.java:442)
at org.apache.synapse.config.xml.rest.APIFactory.defineHandler(APIFactory.java:130)
at org.apache.synapse.config.xml.rest.APIFactory.createAPI(APIFactory.java:101)

是因为不知何故该类已经包含在 WSO2 OSGI 依赖项中了吗?

创建包含多个第三方库的附加 jar 文件的推荐方法是什么,以便它可以安全地包含在 wso2 api 管理器中而不会出现版本冲突问题。我是否应该创建一个 OSGI 包,将所有第三个库包含在包中,以便只有我的自定义处理程序类可以看到它?

最佳答案

is it because somehow the class is already included in WSO2 OSGI dependencies?

不,API 管理器无法在运行时找到 JAR。你得到 java.lang.NoClassDefFoundError: org/apache/http/conn/util/PublicSuffixMatcherLoader

您需要将该自定义处理程序的所有依赖 JAR 添加到 <APIM_HOME>/repository/components/lib目录。

此外,您可以在以下目录中检查系统中现有的 JAR

<APIM_HOME>/repository/components/plugins

关于wso2 - 为 wso2 api 管理器创建包含多个第三方库的自定义处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36838319/

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