当前位置: 首页 > 知识库问答 >
问题:

卡拉夫:从我自己的罐子里漏课

薛利
2023-03-14
$ jar tvf myproject-1.0-SNAPSHOT.jar
   455 Tue Jul 26 11:25:10 UTC 2016 META-INF/MANIFEST.MF
     0 Tue Jul 26 11:25:10 UTC 2016 META-INF/
     0 Tue Jul 26 11:25:10 UTC 2016 META-INF/maven/
     0 Tue Jul 26 11:25:10 UTC 2016 META-INF/maven/com.petewall/
     0 Tue Jul 26 11:25:10 UTC 2016 META-INF/maven/com.petewall/myproject/
   143 Tue Jul 26 11:25:10 UTC 2016 META-INF/maven/com.petewall/myproject/pom.properties
  3418 Tue Jul 26 11:25:06 UTC 2016 META-INF/maven/com.petewall/myproject/pom.xml
     0 Tue Jul 26 11:25:10 UTC 2016 OSGI-INF/
     0 Tue Jul 26 11:25:10 UTC 2016 OSGI-INF/blueprint/
  1376 Tue Jul 26 11:20:12 UTC 2016 OSGI-INF/blueprint/blueprint-bean.xml
   961 Tue Jul 26 11:20:12 UTC 2016 OSGI-INF/blueprint/blueprint-service.xml
     0 Tue Jul 26 11:25:10 UTC 2016 com/
     0 Tue Jul 26 11:25:10 UTC 2016 com/petewall/
   143 Tue Jul 26 11:24:56 UTC 2016 com/petewall/Hello.class
  1022 Tue Jul 26 11:24:56 UTC 2016 com/petewall/HelloBean.class
   676 Tue Jul 26 11:20:12 UTC 2016 log4j.properties
karaf@root()> bundle:diag  98
Camel Blueprint Route (98)
--------------------------
Status: GracePeriod
Blueprint
7/26/16 6:26 PM
Missing dependencies:
(objectClass=com.petewall.Hello)

但是,甚至可以使用Karaf的exports命令找到这些类:

karaf@root()> exports
Package Name                     | Version        | ID | Bundle Name
-----------------------------------------------------------------------------
...
com.petewall                     | 1.0.0.SNAPSHOT | 98 | myproject
...

classs命令:

karaf@root()> classes
...
com/petewall/Hello.class
com/petewall/HelloBean.class

我对所有这些技术(Karaf,Camel,OSGi,等等)都很陌生,所以我肯定我遗漏了一些东西。拜托,谁能给我指点一下这里的正确方向吗?

<?xml version="1.0" encoding="UTF-8"?>
<blueprint xmlns="..." xmlns:xsi="..." xmlns:cm="..." xsi:schemaLocation="...">
  <cm:property-placeholder persistent-id="HelloBean" update-strategy="reload">
    <cm:default-properties>
      <cm:property name="greeting" value="Hi from Camel" />
    </cm:default-properties>
  </cm:property-placeholder>

  <bean id="helloBean" class="com.petewall.HelloBean">
    <property name="say" value="${greeting}"/>
  </bean>

  <camelContext id="blueprint-bean-context" xmlns="http://camel.apache.org/schema/blueprint">
    <route id="timerToLog">
      <from uri="timer:foo?period=5000"/>
      <setBody>
        <method ref="helloBean" method="hello"/>
      </setBody>
      <log message="The message contains ${body}"/>
      <to uri="mock:result"/>
    </route>
  </camelContext>
</blueprint>
<?xml version="1.0" encoding="UTF-8"?>
<blueprint xmlns="..." xmlns:xsi="..." xmlns:cm="..." xsi:schemaLocation="...">
  <reference id="helloService" interface="com.petewall.Hello" />
  <camelContext id="blueprint-service-context" xmlns="http://camel.apache.org/schema/blueprint">
    <route id="timerToLog">
      <from uri="timer:foo?period=5000"/>
      <setBody>
        <method ref="helloService" method="hello"/>
      </setBody>
      <log message="The message contains ${body}"/>
      <to uri="mock:result"/>
    </route>
  </camelContext>
</blueprint>

共有1个答案

仲孙信瑞
2023-03-14

Blueprint报告的“缺失依赖项”实际上是缺失的OSGi服务。

很难确定,因为您还没有发布蓝图XML,但错误消息强烈暗示了这一点。您可能有一个 元素,它引用了com.petewall.hellow服务。

是否有任何包提供com.petewall.hellow的实例作为服务?请注意,包中是否存在具有此名称的类文件是不相关的。也许你搞错了,你的包应该提供服务?你能从更高的层面解释一下你想做什么吗?

 类似资料:
  • 我正在从log4j-slf4j-impl 2.12.0升级到2.17.1。在我之前的代码中,除了 现在我已经升级到2.17.1,我得到了以下错误: org . Apache . Felix . resolver . reason . reason异常:无法解析org . Apache . logging . log4j . slf4j-impl/2 . 17 . 1:缺少需求[org . Apac

  • 设置 多个独立的源系统将AVRO事件推送到Kafka主题中。KafkaS3接收器连接器从本主题读取AVRO事件,并写入S3拼花格式。 问题 我们的架构注册表中的 AVRO 架构不符合标准。例如,源系统中的十进制字段在架构注册表中具有基类型字符串和逻辑类型十进制。AVRO 中不允许这些类型的组合(十进制逻辑类型必须始终具有基本类型修复/字节。 这些不正确的AVRO模式导致不正确的拼花文件模式。E、

  • 我试图在Karaf 3.0.0-RC1中使用H2数据库加载来获取Scala库,但我遇到了这个错误 有人知道我需要在POM和/或功能中添加什么吗。xml来让它工作吗? 谢谢,鲍勃

  • 我通过执行以下命令,在我的两个Apache Karaf 2.2.7实例中安装了hawtio: 问题是我有四个linux机器和四个Karaf实例,所以我在每个机器上都安装了它。除了hawtio控制台端口不同之外,一切都很好。我知道默认情况下它应该在< code>8181上启动。在我的两个服务器上,它开始于:< code>8182,在另外两个服务器上:< code>7181。我不确定,也许< code

  • 我的DRL文件: 我在linux vm的karaf 2.4.3中以流模式运行drools,每5分钟报告10k entity CheckineEvent pumping的内存不足。 我的用例是检测由序列号标识的实体的latecheckin事件。在检测到延迟签入事件时,将该事件泵送到另一个规则并在2小时内等待该实体再次正确签入。如果发生,则触发规则2。 我写查询的方式有什么问题吗?

  • 是的。这种问题已经被问了很多时间了。这是我得到的。 我有一个用gradle构建的jar文件(将被称为“库”)。这个库在(依赖项)中嵌入了一个解压缩的jar。库的内部包(文件夹树)和嵌入类处于同一级别。例如,com.xxx.yyy是库,com.xxx.aaa是嵌入的、解压缩的jar类(依赖项)。 如果我以“独立的方式”运行jar(Java-jar等),它就能正常工作。 但如果我将这个jar作为库添加