Asynchronous java.lang.ClassNotFoundException:org.reactivestreams.Publisher在使用camelahc组件时未找到

Asynchronous java.lang.ClassNotFoundException:org.reactivestreams.Publisher在使用camelahc组件时未找到,asynchronous,apache-camel,apache-karaf,Asynchronous,Apache Camel,Apache Karaf,我想使用ahc组件调用外部http服务,camel ahc依赖项添加到pom.xml中,camel ahc功能也安装在karaf中: feature:install camel-ahc 已添加的捆绑包: 骆驼ahc 及 包装文件\uuuuuuuuuuuuuuuuuuuuuuuu home\uOSSL\uum2\u存储库\u组织\u asynchttpclient\u async-http-client\u 2.4.3\u async-http-cl 我的代码是: <camelCo

我想使用ahc组件调用外部http服务,camel ahc依赖项添加到pom.xml中,camel ahc功能也安装在karaf中:

feature:install camel-ahc
已添加的捆绑包:

骆驼ahc 及 包装文件\uuuuuuuuuuuuuuuuuuuuuuuu home\uOSSL\uum2\u存储库\u组织\u asynchttpclient\u async-http-client\u 2.4.3\u async-http-cl

我的代码是:

    <camelContext id="jetty-ws-camel-ahc" xmlns="http://camel.apache.org/schema/blueprint" >
       <route id="ahc-route">
        <from uri="timer://webinar?period=20000"/> 
              <setHeader headerName="CamelHttpMethod">
                  <constant>GET</constant>
              </setHeader>
          <to uri="ahc:http://217.0.0.0:3030/sendSMS/mynumber/bye"/>
      <log message="message sent!"/>
       </route>
</camelContext>

得到
但我有一个警告,请求未发送到http地址: 警告[Blueprint Extender:3]侦听器导致异常,将被忽略 java.util.concurrent.ExecutionException:java.lang.NoClassDefFoundError:org/reactivestreams/Publisher

原因:java.lang.ClassNotFoundException:org.reactivestreams.Publisher未被wrap_file_uuuhome_ossl_m2_Urepository_org_asynchttpclient_async-http-client_2.4.3_async-http-client-2.4.3.jar_u导出包_org.asynchttpclient.\uU版本_2.4.3


我该怎么办?

问题是工件的自动包装
org.asynchttpclient/asynchttpclient

包装默认情况下使所有导入包子句都是可选的,这有时会使构建可靠连接的设置变得困难,因为当解析器在查看导出“可选”包的包之前查看包装包时,它们不会连接在一起,因为它们是可选的,冲突解决程序会很高兴地跳过它们,即使在一微秒后出现

要测试这一点,您可以
bundle:refresh
异步http客户机bundle,并查看
bundle:tree show
包是否仍未连接(标记为
警告

为了可靠地修复它,您可以基于正式的Apache Camel功能创建自己的功能,并修改包装以使某些导入成为必需的(例如,将
&Import Package=org.reactivestreams,*;解析:=可选的
添加到
包装:
语句中)


还可以查看。

问题是工件的自动包装
org.asynchttpclient/asynchttpclient

包装默认情况下使所有导入包子句都是可选的,这有时会使构建可靠连接的设置变得困难,因为当解析器在查看导出“可选”包的包之前查看包装包时,它们不会连接在一起,因为它们是可选的,冲突解决程序会很高兴地跳过它们,即使在一微秒后出现

要测试这一点,您可以
bundle:refresh
异步http客户机bundle,并查看
bundle:tree show
包是否仍未连接(标记为
警告

为了可靠地修复它,您可以基于正式的Apache Camel功能创建自己的功能,并修改包装以使某些导入成为必需的(例如,将
&Import Package=org.reactivestreams,*;解析:=可选的
添加到
包装:
语句中)

还可以看一看