我是卡拉夫的新手。我有一个jar,它有一个带有方法main的类App。当我在The Karaf日志服务控制台中放下jar时,说捆绑包已启动但似乎没有任何事情发生。第一件事(jar)做的是一个简单的数据库写入,所以我可以看到它是否正在运行(虽然预计会有一个日志文件没有生成)。
罐子取决于许多其他罐子。我们的系统管理员不会在生产服务器上安装Maven。在哪里放一个帮手罐子(比如mysql-connector-java- [version] .jar)?
Karaf是否使用Manifest文件来查找主类?我是否必须实现一些特殊的界面?
感谢您的帮助。
答案 0 :(得分:2)
由于Karaf是一个OSGi容器,你应该先阅读一些关于如何编写适当的OSGi包的东西。 首先,你需要一个能够启动你的捆绑的Activator(就像一个主要的)。绝不会解释主类。是的Karaf,因为它是一个OSGi容器,它“读取”Manifest,但是首先要确保它是一个合适的OSGi包,然后再通过读取Package-Import / -Export来解决问题。
关于“包装” - 使用其他jar / bunldes的批次 - ,你可以建立一个自定义的Karaf(阅读关于如何做到这一点的Karaf文档)或为包含你的捆绑包的a束创建一个KAR feature.xml(再次查看Karaf的文档)