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

OGSi入门

戚阳文
2023-03-14

http://www.javaworld.com/article/2077837/java-se/hello--OSGI-Part-1-Bundles-for-Beginners.html

最初的问题是大量的错误,我找不到这些错误的来源(但尽管有错误,程序的输出是正确的)。关于这个问题,我读过这样的文章:

当有人试图用java-classpath对OSGi包运行Java应用程序时,通常会出现这种情况....这实际上意味着工作台插件还没有启动,因此对getWorkbench()的调用失败。这本质上是一个竞争条件,可以通过表达对该包的显式依赖或将该包提升到比工作台更高的启动级别来解决。一般看不见,但如果是的话,那就是发生了什么。

但我只得到了第一个输出(usage counter打印为1),没有其他输出。在谷歌搜索时,我发现了第一个问题的可能解决方案,我认为它也可能解决第二个问题:

我为“工作台还没有创建”的完整一天而挣扎了很多。但我通过以下步骤得到了解决方案。转到Run configuration->Remove all the target platform jar。单击add required Bundles。检查org.apache.felix.gogo.runtime、org.apache.felix.gogo.shell、org.eclipse.eqinox.console、org.eclipse.osgi和您的jar文件。最后也是重要的一步。转到设置->勾选“启动前清除配置区域”的复选框。现在运行OSGi应用程序。

如果它对你起作用,就像它对我起作用一样,那就好好享受吧。

!Entry org.eclipse.osgi 4 0 201 4-02-03 14:50:46.399!Message Bundle Reference:file:c:/users/user/workspace/com.javaworld.sample.helloservice@5找不到。

!entry org.eclipse.osgi 2 0 201 4-02-03 14:50:46.473!Message一个或多个包未解析,因为以下根约束未解析:!subentry 1 org.eclipse.osgi 2 0 201 4-02-03 14:50:46.474!Message Bundle initial@reference:file:../../workspace/com.javaWorld.sample.HelloWorld/未解析。!子条目2 com.javaWorld.sample.HelloWorld 2 0 201 4-02-03 14:50:46.474!消息缺少导入的包com.javaWorld.sample.service_0.0.0。

!entry org.eclipse.osgi 2 0 201 4-02-03 14:50:46.475!Message以下是未解析的包的完整列表,如果存在根本原因,请参阅前面的日志条目:!subentry 1 org.eclipse.osgi 2 0 201 4-02-03 14:50:46.475!Message Bundle com.javaworld.sample.helloworld_1.0.0.qualifier[2]未解析。!子条目2 com.javaWorld.sample.HelloWorld 2 0 201 4-02-03 14:50:46.475!消息缺少导入的包com.javaWorld.sample.service_0.0.0。

好的,我以为只要重新选择所有的东西(我认为这是以前的方式),我就会回到业务上,但现在我没有得到任何输出。知道我做错了什么吗?

共有1个答案

夹谷俊远
2023-03-14

“删除所有目标平台JAR”是否意味着我应该取消选中运行配置中bundles选项卡中的所有bundles?我就是这么做的,事情变得更糟了。通过这样做,我没有得到任何输出和一些错误(不是像前面那样的一堆错误),我将在下面打印出来。

当您打开OSGI配置(Bundles选项卡)时,您有可能在a)工作区b)目标平台中包括/排除bundle

“删除所有目标平台罐子”表示取消选中目标平台节点。

 类似资料:
  • quickstart 本教程假设你从头开始,没有Kafka和ZooKeeper历史数据。 quickstart_download 下载 0.10.0.0 的正式版本并解压。 > tar -xzf kafka_2.11-0.10.0.0.tgz > cd kafka_2.11-0.10.0.0 quickstart_startserver Kafka依赖ZooKeeper因此你首先启动一个ZooKe

  • 要开始创建Spring Cloud Stream应用程序,请访问Spring Initializr并创建一个名为“GreetingSource”的新Maven项目。在下拉菜单中选择Spring Boot {supported-spring-boot-version}。在“ 搜索依赖关系”文本框中键入Stream Rabbit或Stream Kafka,具体取决于您要使用的binder。 接下来,在

  • introduction Kafka是一个实现了分布式、分区、提交后复制的日志服务。它通过一套独特的设计提供了消息系统中间件的功能。 这是什么意思呢? 首先我们回顾几个基础的消息系统术语: Kafka将消息源放在称为topics的归类组维护 我们将发布消息到Kafka topic上的处理程序称之为producers 我们将订阅topic并处理消息源发布的信息的程序称之为consumers Kafk

  • 将本地Web服务器公开到互联网 ngrok允许您将本地计算机上运行的Web服务器公开到互联网。只是告诉ngrok你的web服务器正在监听什么端口。 如果你不知道你的web服务器正在监听什么端口,它可能是端口80,HTTP的默认值。 示例:将本地计算机的端口80上的Web服务器公开到互联网 ngrok http 80 当您启动ngrok时,它将在您的终端中显示一个UI,其中包含您的隧道的公共URL以

  • 本指南的稍后章节会对框架的架构和实现类进行一个深度的讨论,如果你想对Spring Security进行一个深度定制,这一章节将会包含包含你需要了解的内容。在本章我们将会介绍Spring Security 3.0 ,给项目的历史进行简要的概述,简单的讲讲如何开始使用这个框架。尤其是我们将看看命名空间配置,他提供与传统Spring Bean你必须连接所有实现类的途径更简单的方式保护你的应用程序。 我们

  • 每个人的学习方式都不一样,有的人喜欢亲自实践学习,有的喜欢观看教学视频,还有的喜欢通过阅读来学习。对于Redis,没有什么比亲自实践学习来得效果更好的了。Redis的安装非常简单。而且通过随之安装的一个简单的命令解析程序,就能处理我们想做的一切事情。让我们先花几分钟的时间把Redis安装到我们的机器上。 Windows平台 Redis并没有官方支持Windows平台,但还是可供选择。你不会想在这里