首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Apache安装依赖项

Apache安装依赖项
EN

Stack Overflow用户
提问于 2015-07-16 02:22:49
回答 1查看 1.2K关注 0票数 0

OSGI bundle dependencies接听

我已经将maven-bundle-plugin恢复为使用缺省值。这是我现在的pom:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.felix.test</groupId>
    <artifactId>com.felix.test</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>bundle</packaging>

    <dependencies>
        <dependency>
            <groupId>org.apache.felix</groupId>
            <artifactId>org.osgi.core</artifactId>
            <version>1.0.0</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
            <version>2.5</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.felix</groupId>
            <artifactId>org.apache.felix.scr.annotations</artifactId>
            <version>1.9.6</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpclient-osgi</artifactId>
            <version>4.5</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>net.sf.ehcache</groupId>
            <artifactId>ehcache</artifactId>
            <version>2.10.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
            <version>3.4</version>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <version>2.8</version>
                <dependencies>
                    <dependency>
                        <groupId>org.apache.felix</groupId>
                        <artifactId>maven-bundle-plugin</artifactId>
                        <version>2.5.4</version>
                        <type>maven-plugin</type>
                    </dependency>
                </dependencies>
            </plugin>
            <plugin>
                <groupId>org.apache.felix</groupId>
                <artifactId>maven-bundle-plugin</artifactId>
                <version>2.5.4</version>
                <extensions>true</extensions>
                <configuration>
                    <instructions>
                    </instructions>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

所有的东西都装好了。当我尝试启动包时,我被告知我缺少安装的net.sf.ehcache。然后我丢失了我安装的slf4j.api。然后我就错过了slf4j.impl,我已经尝试过从https://jpm4j.org/#!/安装几乎所有的slf4j.impl,但是大多数(slf4j-simple-1.7.12.jarslf4j-log4j12-1.7.12.jar)都会报告:

org.osgi.framework.BundleException:无法启动片段包。

这是来自GoGo的当前错误:

(&(osgi.wiring.package=net.sf.ehcache)(version>=2.10.0)(!(version>=3.0.0))):org.osgi.framework.BundleException:无法解决com.felix.test 16:缺失需求[com.felix.test 16] osgi.wiring.package;com.felix.test[无法解决net.sf.ehcache 17:缺失需求[net.sf.ehcache 17] osgi.wiring.package;(&(osgi.wiring.package=org.slf4j)(version>=1.7.0)(!(version>=2.0.0))) [由:无法解决slf4j.api 23:缺少需求[slf4j.api 23] osgi.wiring.package引起;(&(osgi.wiring.package=org.slf4j.impl)(version>=1.6.0))]]未解决需求:[com.felix.test 16] osgi.wiring.package;(&(osgi.wiring.package=net.sf.ehcache)(version>=2.10.0)(!(version>=3.0.0)))]

希望我能靠得更近..。

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-16 02:40:00

您有两个错误要解决。第一个是“无法启动片段包”。错误信息告诉您您需要知道的一切。slf4j实现包是片段,您不能启动片段。所以不要发动他们!

您还没有指定如何运行OSGi框架,但是在某个地方,您必须有一些代码来迭代所有已安装的包,并在每个包上调用start()方法。您需要修改代码,以避免调用属于片段的包中的start()。您可以判断任何捆绑包是否是一个片段,如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
(bundle.adapt(BundleRevision.class).getTypes() | BundleRevision.TYPE_FRAGMENT) > 0;

或:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
bundle.getHeaders().get(Constants.FRAGMENT_HOST) != null;

第二个错误是,名为com.felix.test的包依赖于包net.sf.ehcache。我从没听说过com.felix.test..。这是你正在建造的包裹吗?您在代码中实际使用了Ehcache吗?如果是这样,显然需要安装Ehcache包。如果您确实安装了Ehcache,那么它可能是错误的版本;您的包需要2.10.0版本,但不包括3.0.0。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31451567

复制
相关文章
[1084]windows搭建clojure开发环境
关于clojure是什么东西就自行百度了,简单说就是用Lisp语言写的程序,编译成.class放在jvm上面跑,所以是需要jre的。独立的clojure可以从官方网站找到,目前稳定版本是1.8,官网https://clojure.org/index。下载后是一个zip,里面有个jar是clojure-1.8.0.jar,可以像常用的jar那样运行,这样会得到一个REPL交互环境,当然需要预先配置好jre(java8)。
周小董
2021/11/30
2.2K0
[1084]windows搭建clojure开发环境
(cljs/run-at (JSVM. :browser) "搭建刚好可用的开发环境!")
前言  书接上一回,在了解cljs基本语法后并在clojurescript.net的奇特错误提示后,我们必须痛定思痛地搭建一个本地的开发环境,以便后续深入地学习cljs。 现有的构建工具  由于浏览器仅能运行JS,而无法直接运行cljs,因此我们需要搭建一个预编译环境将cljs编译成JS后再在浏览器中运行。预编译无非就是JVM和Nodejs两个环境,但具体使用时有如下几种构建工具。 直接JVM编译 Lein方案 Boot方案 Lumo方案 Shadow-cljs方案 cljs/tool方案  其中Lein
^_^肥仔John
2018/01/18
9150
一脸懵逼学习Storm的搭建--(一个开源的分布式实时计算系统)
Storm的官方网址:http://storm.apache.org/index.html 1:集群部署的基本流程(基本套路): 集群部署的流程:下载安装包、解压安装包、修改配置文件、分发安装
别先生
2018/01/02
1.4K0
一脸懵逼学习Storm的搭建--(一个开源的分布式实时计算系统)
Clojure 运行原理之字节码生成篇
上一篇文章讲述了 Clojure 编译器工作的整体流程,主要涉及 LispReader 与 Compiler 这两个类,而且指出编译器并没有把 Clojure 转为相应的 Java 代码,而是直接使用 ASM 生成可运行在 JVM 中的 bytecode。本文将主要讨论 Clojure 编译成的 bytecode 如何实现动态运行时以及为什么 Clojure 程序启动慢,这会涉及到 JVM 的类加载机制。
飞驰的西瓜
2022/07/26
7430
Clojure 运行原理之字节码生成篇
将class文件打成jar包
如果真相是种伤害,请选择谎言。如果谎言是一种伤害,请选择沉默。如果沉默是一种伤害,请选择离开。——徐志摩 命令很简单,在class文件目录下执行: jar -cvf ruben.jar . 例如我这里执行后: 预览也能看到大致结构
阿超
2022/08/17
6050
将class文件打成jar包
Clojure和CloudStack
[原文由Sebastien Goasguen撰写]
Techeek
2018/01/11
1.1K0
.java编译成.class 与 .class反编译成.java
了解下这两个文件类型:.java文件是给人看的,.class是给计算机看的。程序员编写的是.java文件,经编译后生成.class文件给计算执行。
全栈程序员站长
2022/08/09
2.7K0
.java编译成.class 与 .class反编译成.java
处理Sprint Boot与Storm1.2.2日志实现的冲突,使用logback记录日志
通过mvn dependency:tree可以看到Sprint Boot Starter和Storm引入的日志记录框架不相同的,如下:
heasy3
2020/08/02
5210
聊聊storm的reportError
storm-2.0.0/storm-client/src/jvm/org/apache/storm/task/IErrorReporter.java
code4it
2018/11/20
8440
Clojure 学习入门(2)—— eclipse 插件
以前听说过LISP函数式编程,也听人说Erlang的牛逼,接触了Clojure才知道,原来Clojure就是JVM中的Erlang。网上基于Ubuntu环境下开发Clojure的资料太少,在这里整理总结,分享给大家。
阳光岛主
2019/02/18
1.1K0
Clojure 学习入门(2)—— eclipse 插件
如何发布jar到clojars
Clojars 是一个为开源 Clojure 类库打造的仓库,截止2017年9月17日,大概有19831个项目发布在上面。整个网站也是用 Clojure 编写的。
lambeta
2018/08/17
8640
如何发布jar到clojars
聊聊storm的reportError
storm-2.0.0/storm-client/src/jvm/org/apache/storm/task/IErrorReporter.java
code4it
2018/10/23
8730
聊聊storm的reportError
一名Clojurian的Emacs配置
我是一名热衷于函数式编程的Clojurian(Clojure粉),网络ID是lambeta(λβ),读作/‘læmeitə/,个人的博客网站是https://lambeta.com。俗话说,工欲善其事必先利其器,完善开发工具与我而言是一件愉快的事情,所以想把经验集结成文字,便有了这篇文章。这篇文章不会介绍太多花式或有深度的emacs配置,更多是摸索学习的过程,其中充满了乐趣。
lambeta
2018/08/17
2.8K0
ClojureScript魔法堂:搭建开发环境
一、前言                                 当看到Lisp等函数式编程语言的语法是 (say (concat "hello" "world")) 这样的时候,我就有种深入学习的冲动,因为它的语法和自己一直使用的Java、C#都不同,酷比了!(我承认我是语法控^_^)又由于我主要玩的是JavaScript,恰好ClojureScript就是纯函数式的JS超集,于是决定以ClojureScript作为函数式编程的起点。(虽然JavaScript具有函数式语言的特点:函数为一等公民,
^_^肥仔John
2018/01/18
1.2K0
Clojure 学习入门(9)—— 连接redis
project.cli 添加redis依赖: [clj-redis "0.0.12"]
阳光岛主
2019/02/18
7490
Clojure 学习入门(9)—— 连接redis
Java文件是怎么编译成Class文件的
其实就是我们前端的编译过程,是通过javac(编译器)把java文件变成.class字节码文件。
向着百万年薪努力的小赵
2022/12/02
1.4K0
Java文件是怎么编译成Class文件的
Twitter Storm: Maven配置
为了开发storm topology, 你需要把storm相关的jar包添加到classpath里面去: 要么手动添加所有相关的jar包, 要么使用maven来管理所有的依赖。storm的jar包发布在Clojars(一个maven库), 如果你使用maven的话,把下面的配置添加在你项目的pom.xml里面。
星哥玩云
2022/06/30
3560
Clojure Web 开发-- Ring 使用指南
在 Clojure 众多的 Web 框架中,Ring 以其简单统一的 HTTP 抽象模型脱颖而出。Ring 充分体现了函数式编程的思想——通过一系列函数的组合形成了一个易于理解、扩展的 HTTP 处理链。
飞驰的西瓜
2022/07/26
8840
Clojure Web 开发-- Ring 使用指南
Kafka的生产者和消费者代码解析
1:Kafka名词解释和工作方式 1.1:Producer :消息生产者,就是向kafka broker发消息的客户端。 1.2:Consumer :消息消费者,向kafka broker取消息的客户端 1.3:Topic :可以理解为一个队列。 1.4:Consumer Group (CG):这是kafka用来实现一个topic消息的广播(发给所有的consumer)和单播(发给任意一个consumer)的手段。一个topic可以有多个CG。topic的消息会复制(不是真的
别先生
2018/04/02
2K0
Kafka的生产者和消费者代码解析
Clojure 学习入门(7)—— 连接mysql
Clojure的contrib包中实现了对现有JDBC的封装,在wiki上有连接,该页面上包含了对不同的数据库的连接方法和基本的操作,但是这个页面上没有提供足够的信息,足够一个初学者能够使用Clojure来完成一个SQL操作。本文中我们将利用Clojure和Lein工具,简介一下做开发的基础。当然网上也有非常多对Clojure的SQL操作进行封装的库,我们这里没有使用。
阳光岛主
2019/02/18
1.1K0
Clojure 学习入门(7)—— 连接mysql

相似问题

创建对所有对象都相同的属性

231

数组对象所有索引都具有相同的值( java )。

13

所有对象都具有相同的名称

10

Array.fill重复给出相同的对象。为什么?

10

比较几乎所有字段都相同的对象

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文