karaf 简介
karaf是一个基于osgi的运行环境,同时也是发布和运行osgi服务的容器,可以帮助开发者进行灵活的部署,并且各个组件之间的聚合关系又有些类似spring的aop编程,在各个文档中有关于karaf的描述是说karaf集成的spring的面相切面技术。
karaf有些类似tomact,但是有不同于tomact,可以作为一个web服务器,也可以用作其他类似日志处理,本地系统集成等等左右。
karaf本身支持java bundle项目,对于jar和war项目没有直接的支持,但是又可以基于osgi服务安装插件对jar、war项目进项发布。
karaf 安装
karaf下载地址:http://karaf.apache.org/download.html
karaf的安装相对于比较简单,根据不同的操作系统下载Karaf Runtime:.zip或者.tar.gz压缩包
解压karaf安装包:
- bin: 下的文件可以选择不同的启动方法
- data: karaf运行时一些内容、配置和记录的输出方式
- data/log: karaf默认的日志输出路径
- deploy: 类似tomact的webapp目录,需要运行的bundle.jar包存入此路径下,karaf
启动的时候回自动启动此bundle - etc:karaf的配置文件路径,karaf所有的配置都在此目录下
- lib: karaf插件依赖的目录
- system: 在karaf中运行的feature和其依赖安装目录,卸载feature时会自动删除
根据不同的版本进入karaf/bin中选择启动方式启动karaf
karaf 插件安装
bin/karaf.bat: win下双击启动karaf或者在cmd命令行中进入bin目录输入karaf回车启动
karaf主要支持的项目是基于osgi开发的,如果要做类似tomact发布web服务的功能的话需要安装插件
feature:install 插件名称
插件需要根据项目的需求和项目的依赖选择在karaf命令台或者osgi实现的feature中进行安装和加载
karaf 主要命令
命令 | Message |
---|---|
bundle | bundle命令行列表 |
bundel:start {服务id} | 启动bundle服务 |
bundle:stop {服务id} | 停止bundle服务 |
bundle:refresh {服务id} | 刷新服务 |
bundle:restart {服务id} | 重启bundle服务 |
feature:help | 查看feature命令行 |
feature:repo-add mvn:{groupId}/{artifactId}/{version}/xml | feature:install 前一步工作 |
feature:insatll {feature-name} | 上一步工作中的feature的name值,也可以在安装在karaf中可以直接安装的插件 |
feature:uninstall {feature-name} | 卸载feature服务 |
feature:repo-remove | 移除feature中features name的值 |
http:list | 查询发布出去的web服务 |