Karaf OSGi && JavaEE 通俗易懂版 实战教程入门(二)_勤奋的攻城狮的博客-程序员宅基地

技术标签: OSGI  JavaEE  Karaf  

本节内容主要为介绍karaf3.0.x操作基本,让读者有个概念,然后会根据假定的项目技术需要对karaf进行模块添加使其具备JavaEE运行环境的特性,最后给出完整的指令直接型列表。阅读本文需要具备osgi、maven(karaf是基于maven管理bundle、feature的)、linux(karaf是类unix环境)的基本知识。

1、Apache Karaf 入门

1.1、必须要明白的几个名词及概念

bundle:osgi中的模块

feature:一组bundle,其具备特定的功能,比如hibernate就算是一个feature,其由多个bundle组成

feature-repo:feature资源库,由一组feature组合而成,apache已经提供了一部分,可以进如etc配置文件中查看

1.2、必须要做的阅读的资料

仔细阅读Apache Karaf官方手册,了解其默认提供的特性(feature),后续都以feature称呼。

2、Karaf的Feature

karaf的feature组成结构为:

feature-repo包含feature,所有的feature都由feature-repo打包提供。

karaf/etc目录下的org.apache.karaf.features.repos.cfg文件摘要如下:

enterprise=mvn:org.apache.karaf.features/enterprise/LATEST/xml/features
spring=mvn:org.apache.karaf.features/spring/LATEST/xml/features
cellar=mvn:org.apache.karaf.cellar/apache-karaf-cellar/LATEST/xml/features
cave=mvn:org.apache.karaf.cave/apache-karaf-cave/LATEST/xml/features
camel=mvn:org.apache.camel.karaf/apache-camel/LATEST/xml/features
camel-extras=mvn:org.apache-extras.camel-extra.karaf/camel-extra/LATEST/xml/features
cxf=mvn:org.apache.cxf.karaf/apache-cxf/LATEST/xml/features
cxf-dosgi=mvn:org.apache.cxf.dosgi/cxf-dosgi/LATEST/xml/features
activemq=mvn:org.apache.activemq/activemq-karaf/LATEST/xml/features
jclouds=mvn:org.apache.jclouds.karaf/jclouds-karaf/LATEST/xml/features
openejb=mvn:org.apache.openejb/openejb-feature/LATEST/xml/features
wicket=mvn:org.ops4j.pax.wicket/features/LATEST/xml/features
hawtio=mvn:io.hawt/hawtio-karaf/LATEST/xml/features
pax-cdi=mvn:org.ops4j.pax.cdi/pax-cdi-features/LATEST/xml/features
pax-jdbc=mvn:org.ops4j.pax.jdbc/pax-jdbc-features/LATEST/xml/features
pax-jpa=mvn:org.ops4j.pax.jpa/pax-jpa-features/LATEST/xml/features
pax-web=mvn:org.ops4j.pax.web/pax-web-features/LATEST/xml/features
pax-wicket=mvn:org.ops4j.pax.wicket/pax-wicket-features/LATEST/xml/features
ecf=http://download.eclipse.org/rt/ecf/latest/site.p2/karaf-features.xml
decanter=mvn:org.apache.karaf.decanter/apache-karaf-decanter/LATEST/xml/features

有些keyname是不是很熟悉?spring、camel、cxf、openejb,这些都是常规JavaEE中常见的组件模块,karaf也提供了,区别仅仅是对其进行了osgi化。

可以查看每个feature-repo中包含的feature,这需要通过feature:list指令,结果如下图(Repository列就是指向的feature-repo,并加上了feature-repo的版本号):


3、常用操作指令

bundle安装:将指定bundle安装到osgi环境中,-s  代表安装完后立即启动该bundle

bundle:install -s mvn:commons-io/commons-io/2.2

从bundle的安装指令中就可以看出karaf使用maven对依赖进行管理,如果你对maven不熟悉,则需要去熟悉下。

feature repository安装:将指定repository的内容添加到feature list中

feature:repo-add pax-jdbc 0.6.0

feature查询:查询当前存在的feature,可以配合grep进行过滤

feature:list

feature安装

feature:install spring-web
指定的feature必须是当前已经存在,可以用feature:list查询到

4、项目技术需求

  • 支持mysql数据库
  • 支持Spring
  • 支持WebService
  • 支持WebSocket
  • 支持JMS
  • 支持。。。

5、给karaf添加Feature

根据项目技术需求逐项给karaf添加feature,并编写Demo进行测试。

6、结尾

本节讲述了karaf的基本知识和操作,下文开始从添加需求开始一步一步给karaf添加特性。

了解karaf中的名词以及如何给karaf添加feature是非常重要的基本功,当你需要给karaf添加到常规JavaEE功能时,基本都会用到本节描述的内容。


版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/cz_jjq/article/details/50379435

智能推荐

mysql5.7.23修改密码_mysql5.7 23 修改密码_qq_43355847的博客-程序员宅基地

mysql -u root -p修改密码ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘root123’;

Spring Boot入门_心灵技艺的博客-程序员宅基地

springboot是什么Spring Boot它本身并不提供Spring框架的核心特性以及扩展功能,只是用于快速、敏捷地开发新一代基于Spring框架的应用程序。也就是说,它并不是用来替代Spring的解决方案,而是和Spring框架紧密结合用于提升Spring开发者体验的工具同时它集成了大量常用的第三方库配置(例如Jackson, JDBC, Mongo, Redis, Mail等等...

clion ros 使用_clion ros_山头间的博客-程序员宅基地

本文根据柴长坤老师的《机器人操作系统入门》6.2和6.3节进行操作,我也是刚开始学这门课。由于小弟电脑之前装了Clion,就顺手用它进行开发,其中如果有问题的话,可以和我进行交流哈。 本文参考了这几个博文: https://blog.csdn.net/chenjun15/article/details/89305462 https://www.jetbrains.com/help/clion/ros-setu...

Mysql的内连接,外连接,右连接,左连接,自然连接_Clearlast .的博客-程序员宅基地

JOIN等同于INNER JOIN,即内连接,不满足ON条件的会直接过滤掉,不显示LEFT JOIN等同于LEFT OUTER JOIN,左外连接,不满足ON条件的会保留左边那张表的数据,右边表数据直接显示NULLRIGHT JOIN等同于RIGHT OUTER JOIN,右外连接,不满足ON条件的会保留右边那张表的数据,左边表数据直接显示NULL...

随便推点

Vue2 知识点总结_LiYaCongGo的博客-程序员宅基地

###1、.sync修饰符<Child :money.sync="total" /> //等同于下方代码片段<Child :money="total" v-on:update:money = "total = $event" />总结:vue 修饰符sync的功能是:当一个子组件需要改变了一个 prop 的值时,会通知其父组件进行同步的修改。...

Idea整合SSM框架 applicationcontext in module file is included in 5 contexts_ipllt的博客-程序员宅基地

今天在看视频学习用IDEA整合SSM框架的时候出现了这个东西经过查询资料,应该是编译器自动导入配置文件的时候发生了某些错误,提示修正解决方法:依次打开Project Settings -> Modules -> Spring 按减号删除右侧所有文件,然后再按加号重新导入配置文件即可。...

面试官:为什么Vue中的v-if和v-for不建议一起用?_面试官v-if和v-for不能一起用_故心v的博客-程序员宅基地

故心故心故心故心小故冲啊文章目录一、作用二、优先级三、注意事项参考文献一、作用v-if 指令用于条件性地渲染一块内容。这块内容只会在指令的表达式返回 true值的时候被渲染v-for 指令基于一个数组来渲染一个列表。v-for 指令需要使用 item in items 形式的特殊语法,其中 items 是源数据数组或者对象,而 item 则是被迭代的数组元素的别名在 v-for 的时候,建议设置key值,并且保证每个key值是独一无二的,这便于diff算法进行优化两者在用法

vuex详细使用(总结)_小旋风01234的博客-程序员宅基地

vuex各个参数state 存放状态mutations state成员操作getters 加工state成员给外界actions 异步操作modules 模块化状态管理VueX的工作流程state 使用:HTML中<h1>{{ $store.state.name }}</h1>js中console.log(this.$store.state.name)mutations 使用:mutations是操作state数据的方法的集合,比如对该数据

推荐文章

热门文章

相关标签