Apache Karaf用户指导 一, 安装 karaf 安装 本章讲述如何在windows和unix平台安装Apache Karaf,这里你将知道预先要安装什么软件,如何下载并且安装Karaf。 预安装需求 硬件: l 20M磁盘剩余空间。 操作系统: l Windows:Windowsvista,Windows XP sp2,wi
Apache Karaf用户指导
一, 安装karaf
安装
本章讲述如何在windows和unix平台安装Apache Karaf,这里你将知道预先要安装什么软件,如何下载并且安装Karaf。
预安装需求
硬件:
l 20M磁盘剩余空间。
操作系统:
l Windows:Windowsvista,Windows XP sp2,windows2000。
l Unix:UbuntuLinux,Powerdog Linux,MacOS,AIX,HP-UX,Solaris,任何支持java的unix平台。
环境:
l Java SE 1.7或者是更高。
l 环境变量JAVA_HOME必须设置为java运行时的安装目录,比如C:\Program Files\Java\jdk1.7.0_51。按住windows和break键切换到高级选项,点击环境变量,把上面的路径加入到变量中。
从源码构建
如果你想从源码构建karaf,需求会有点不同:
硬件:
l 200M磁盘空间便于apache karaf源码展开或者是SVN的验证,以及maven构建和依赖maven组件的下载。
环境:
l JDK 1.7或者是更高。
l Apache maven 3.2.1.
在windows上构建
这过程说明如何下载和安装windows上的源码文件。注:Karaf需要java7编译,构建和运行。
1. 在浏览器输入http://karaf.apache.org/index/community/download.html.
2. 滚动到“Apache Karaf”区域选择需要的链接。源码文件名称类似于:apache-karaf-3.0.0-src.zip.
3. 解压缩zip文件到你选择的目录中,请记住非法java路径的限制,比如!,%等。
4. 用maven 3.2.1 或者更高的java7 来构建karaf。
a) Maven 搭建
i. 在浏览器输入http://maven.apache.org/download.cgi
ii. 选择下载apache-maven-3.2.1-bin.zip,解压缩zip文件到你选择的目录中
iii. 在apache-maven-3.2.1-bin\apache-maven-3.2.1\conf中选择,打开settings.xml
找到
因为网络原因,我们选择使用maven的代理服务。
iv. 拷贝一份settings.xml 到C:\Users\Administrator\.m2下面
构建karaf的方法如下:
Cd [karaf安装路径]\src
Mvn
这两个步骤均需要10到15分钟。
5.用zip工具加压文件,windows的路径是 [karaf安装路径]\assembly\target\apache-karaf-x.y.zip
6.转到开始karaf一节
在Unix上构建
本过程将讲述如何在unix系统上下载和安装源码文件。这里假定unix机器上有浏览器,没有浏览器的请参照前面二进制unix安装区域。注:Karaf需要java7编译,构建和运行。
1. 在浏览器输入http://karaf.apache.org/download.html.
2. 滚动到“Apache Karaf”区域选择需要的链接。源码文件名称类似于:apache-karaf-x.y-src.zip.
3. 解压缩zip文件到你选择的目录中,例如:gunzip apache-karaf-x.y-src.tar.gz
tar xvfapache-karaf-x.y-src.tar
请记住非法java路径的限制,比如!,%等。
4.用maven构建karaf
建议方法如下:
cd [karaf安装路径]\src
mvn
5.解压缩刚刚创建的文件
cd [karaf安装路径]/assembly/target
gunzipapache-karaf-x.y.tar.gz
tar xvfapache-karaf-x.y.tar
6. 转到开始karaf一节
Windows安装过程
这里说明如何在windows系统上下载和安装二进制文件。
1.在浏览器输入http://karaf.apache.org/index/community/download.html.
2. 滚动到“Apache Karaf”区域选择需要的链接。源码文件名称类似于:apache-karaf-3.0.0.zip.
3.解压缩zip文件到你选择的目录中,请记住非法java路径的限制,比如!,%等。
4. 转到开始karaf一节
5.可选:在Windows中启用彩色控制台输出
提示:如果你安装karaf到很深的路径或者是非法的java路径,!,%等,你可以创建一个bat文件来执行:subst S: "C:\your very % problematicpath!\KARAF"
这样karaf的路径是 s: - 这样的短类型。
Unix安装过程
这里属于哦名如何在unix系统上下载和安装二进制文件。
1. 在浏览器输入http://karaf.apache.org/download.html.
2. 滚动到“Apache Karaf”区域选择需要的链接。源码文件名称类似于:apache-karaf-x.y.tar.gz
3. 解压缩zip文件到你选择的目录中,例如:gunzip apache-karaf-x.y.tar.gz
tar xvfapache-karaf-x.y.tar
请记住非法java路径的限制,比如!,%等。
4. 转到开始karaf一节
安装后的步骤
在开始使用karaf之前强烈建议设置指向JDK的JAVA_HOME用来定位java可执行文件,并且应该配置为指向已安装java se7根目录。
二, 目录结构
Karaf安装目录结构如下:
l /bin: 启动脚本
l /etc: 初始化文件
l /data: 工作目录
l /data /cache: OSGi框架包缓存
l /data /generated-bundles: 部署使用的临时文件夹
l /data /log: 日志文件
l /deploy: 热部署目录
l /instances: 含有子实例的目录
l /lib: 包含引导库
l /lib/ext:JRE扩展目录
l /lib/endorsed: 赞同库目录
l /system: OSGi包库,作为一个Maven2存储库
Data文件夹包括karaf所有的工作和临时文件,如果你想从一个初始状态重启,你可以清空这个目录,这和“恢复初始化设置”一样的效果。
三, 启动和停止karaf
本章介绍如何启动和停止Apache Karaf和各种可用的选项。
启动karaf
Windows下
打开一个控制台窗口,更改到安装目录,并运行Karaf。对于二进制文件,运行
Cd [karaf安装目录]
然后输入:bin\karaf.bat
Linux下
打开一个控制台窗口,更改到安装目录,并运行Karaf。运行
Cd [karaf安装目录]
然后输入:bin\karaf
警告:karaf运行后不要关闭控制台,否则会终止karaf(除非用非控制台启动karaf)。
非控制台启动karaf
没有控制台也可以启动karaf,它总可以是用远程SSH访问,是用下面的命令:
bin\karaf.batserver
或者是unix下:bin/karafserver
在后台启动karaf
采用以下命令可以轻易地在后台进程启动karaf:
Bin\start.bat
或者在unix下:bin/start
重置模式启动karaf
清空[karaf安装目录]\data文件夹就可以简单的在重置模式启动karaf,为方便起见,在karaf启动脚本使用以下参数也可以实现重置启动:
On Unix:
bin/karafclean
bin/startclean
On Windows:
bin\karaf.batclean
bin\start.batclean
停止karaf
无论是windows还是unix,你都可以在karaf控制台采用以下命令来停止它:
karaf@root()> shutdown
Shutdown命令会询问你是否真的想要停止,如果你确认停止并且拒绝确认信息,你可以用-f或者—force选项:
karaf@root()> shutdown -f
也可以用时间参数来延迟停止,时间参数有不同的形式。首先,可以是绝对时间各式hh:mm。第二,也可以是+m,其中m是等待的分。现在就是+0.
下面的命令可以在10:35am关闭karaf:
karaf@root()> system:shutdown 10:35
下面的命令在10分钟后关闭karaf:
karaf@root()> system:shutdown +10
如果你在主控制台运行,用注销或者Ctrl+D退出控制台也可以终止karaf实例。
在控制台你可以运行如下命令:
bin\stop.bat
或者在unix下:bin/stop
四, 使用控制台
查看可用的命令
按提示键tab可以在控制台看到可用的命令列表:
root@root>
*:help addurl admin:change-opts
admin:change-rmi-registry-port admin:change-ssh-port admin:connect
admin:create admin:destroy admin:list
admin:rename admin:start admin:stop
bundle-level cancel cat
change-opts change-rmi-registry-port change-ssh-port
clear commandlist config:cancel
config:edit config:list config:propappend
config:propdel config:proplist config:propset
config:update connect create
create-dump destroy dev:create-dump
dev:dynamic-import dev:framework dev:print-stack-traces
dev:restart dev:show-tree dev:watch
display display-exception dynamic-import
each echo edit
exec exports features:addurl
features:info features:install features:list
features:listrepositories features:listurl features:listversions
features:refreshurl features:removerepository features:removeurl
features:uninstall framework get
grep head headers
help history if
imports info install
jaas:cancel jaas:commandlist jaas:list
jaas:manage jaas:roleadd jaas:roledel
jaas:update jaas:useradd jaas:userdel
jaas:userlist java list
listrepositories listurl listversions
log:clear log:display log:display-exception
log:get log:set log:tail
logout ls manage
more new osgi:bundle-level
osgi:headers osgi:info osgi:install
osgi:list osgi:ls osgi:refresh
osgi:resolve osgi:restart osgi:shutdown
osgi:start osgi:start-level osgi:stop
osgi:uninstall osgi:update packages:exports
packages:imports print-stack-traces printf
propappend propdel proplist
propset refresh refreshurl
removerepository removeurl rename
resolve restart roleadd
roledel set shell:cat
shell:clear shell:each shell:echo
shell:exec shell:grep shell:head
shell:history shell:if shell:info
shell:java shell:logout shell:more
shell:new shell:printf shell:sleep
shell:sort shell:tac shell:tail
show-tree shutdown sleep
sort ssh ssh:ssh
ssh:sshd sshd start
start-level stop tac
tail uninstall update
useradd userdel userlist
watch
root@root>
获得命令的帮助
要查看一个特定的命令的帮助,在命令后加--help或使用help命令加上命令的名称:
karaf@root>features:list --help
描述
features:list
列出库中定义的所有功能。
语法
features:list [options]
选项
--help
显示此帮助信息
-i, --installed
只列出已安装的功能列表
更多…
所有可用命令列表和它们的用法,也可以在一个专门的章节。
你在开发指南会获得更多的shell语法的深入引导。
如开发指南解释的那样,控制台可以很容易的被新命令扩展。
五, 网络控制台
Karaf Web控制台提供了一个运行时的图形概述。
你可以是用它来:
l ?安装和卸载功能
l ?启动,停止,安装捆绑
l ?创建子实例
l ?配置Karaf
l ?查看日志信息
l
安装web控制台
默认情况下web控制台是不安装的,安装请在karaf提示中运行以下命令:
karaf@root()> features:install webconsole
访问Web控制台
访问本地运行的一个karaf实例,在浏览器输入:
http://localhost:8181/system/console
使用karaf用户名和karaf密码来登录系统,如果你修改过用户名或密码,请是用修改后的。
改变web控制台端口号
默认情况下,控制台在8181端口运行,你可以通过创建属性文件etc/org.ops4j.pax.web.cfg并在后面添加如下属性设置(改成任意你想要的端口号)来改变端口:
org.osgi.service.http.port=8181
六, 远程控制台
使用远程实例
初始化远程实例
用它本地控制台管理karaf实例不总是有意义的,你可以用远程控制台远程管理karaf。
当你启动karaf时,它使任何其他Karaf控制台或纯SSH客户端可以通过SSH访问远程控制台。远程控制台提供本地控制台的所有功能,并通过运行它里面的容器和服务给远程用户完全控制。
SSH主机名和端口号在配置文件[karaf安装目录]/etc/org.apache.karaf.shell.cfg用以下默认值配置:
sshPort=8101
sshHost=0.0.0.0
sshRealm=karaf
hostKey=${karaf.base}/etc/host.key
你可以用初始化命令或者编辑上面的文件更改这个配置,但是需要重启ssh控制台以便它是用新的参数。
# define helper functions
bundle-by-sn = { bm = new java.util.HashMap ; each (bundles) { $bm put ($it symbolicName)$it } ; $bm get $1 }
bundle-id-by-sn = { b = (bundle-by-sn $1) ; if { $b } { $b bundleId } {-1 } }
# edit config
config:edit org.apache.karaf.shell
config:propset sshPort 8102
config:update
# force a restart
osgi:restart --force (bundle-id-by-sn org.apache.karaf.shell.ssh)
远程连接和断开
使用ssh:ssh命令
你可以使用ssh:ssh命令来连接远程karaf控制台。
karaf@root> ssh:ssh -l karaf -P karaf -p 8101 hostname
注意:默认的密码是karaf,但是我们强烈建议个更改。在安全模块查看更多信息。
为了确定你已经连接到正确的karaf实例,输入ssh:info在karaf提示符。返回当前连接的实例的信息,如下所示。
Karaf
Karaf home /local/apache-karaf-2.0.0
Karaf base /local/apache-karaf-2.0.0
OSGi Framework org.eclipse.osgi -3.5.1.R35x_v20090827
JVM
Java Virtual Machine Java HotSpot(TM) Server VM version14.1-b02
...
使用karaf客户端
Karaf允许你安全的连接到远程karaf实例而不必运行本地karaf实例。
例如,在同一台机器上快速连接在server模式下运行的karaf实例,在karaf安装目录运行以下命令:
bin/client
通常情况下,你需要提供主机名,端口,用户名和密码来连接到远程实例。如果你使用的客户端在一个较大的脚本,你可以附加控制台命令如下:
bin/client -a 8101-h hostname -u karaf -p karaf features:install wrapper
显示可用的客户端选项,输入:
> bin/client--help
Apache Karaf client
-a [port] specify the port to connect to
-h [host] specify the host to connect to
-u [user] specify the user name
-p [password] specify the password
--help shows this help message
-v raise verbosity
-r [attempts] retry connection establishment(up to attempts times)
-d [delay] intra-retry delay (defaults to 2 seconds)
[commands] commands to run
如果没有指定的命令,客户端将在互动模式。
使用纯SSH客户端
你也可以使用你的unix系统中的纯SSH客户端或者windows SSH客户端像putty来连接。
~$ ssh -p 8101karaf@localhost
karaf@localhost'spassword:
从远程控制台断开
按Ctrl+D,shell:logout或者简单的在karaf提示符输入logout就可以断开远程控制台。
关闭远程实例
使用远程控制台
如果你已经用ssh:ssh命令或者karaf客户端连接到远程控制台,你可以用使用osgi:shutdown命令来停止远程实例。
注意:在远程控制台按Ctrl + D键,简单地关闭远程连接并返回到本地shell。
使用karaf客户端
使用karaf客户端停止远程实例,在karaf安装目录/lib目录运行以下命令:
bin/client -u karaf -p karaf -a 8101 hostname osgi:shutdown
七, 子实例
管理子实例
一个Karaf的子实例是一个副本,你可以分别启动和部署应用程序。实例不包含的完整副本Karaf,但只有一个配置文件和数据文件夹的副本,其中包含了所有运行中的信息,日志文件和临时文件。
使用管理控制台命令
管理控制台命令允许您在同一台机器创建和管理Karaf实例。每一个新的运行时是运行时创建的子实例。您可以轻松地使用的名称管理子实例,而不是网络地址。有关管理命令的详细信息,请参阅管理命令。
创建子实例
你可以在karaf控制台输入instance:create创建新的运行时实例.
如下例子所示,instance:create将使运行时在活动的运行时{实例/名称}目录创建新的运行时安装。新的实例是一个新的karaf实例并且分配一个SSH端口号基于始于8101的增量和一个RMI注册端口号基于始于1099的增量。
karaf@root>instance:createtest
Creating newinstance on SSH port 8102 and registry port 1100 / RMI server port
44445 at:C:\karaf\instances\test
Creating dir:C:\karaf\instances\test\bin
Creating dir:C:\karaf\instances\test\etc
Creating dir:C:\karaf\instances\test\system
Creating dir:C:\karaf\instances\test\deploy
Creating dir:C:\karaf\instances\test\data
Creating file:C:\karaf\instances\test\etc\all.policy
Creating file:C:\karaf\instances\test\etc\config.properties
Creating file:C:\karaf\instances\test\etc\custom.properties
Creating file:C:\karaf\instances\test\etc\distribution.info
Creating file:C:\karaf\instances\test\etc\equinox-debug.properties
Creating file:C:\karaf\instances\test\etc\java.util.logging.properties
Creating file:C:\karaf\instances\test\etc\jmx.acl.cfg
Creating file:C:\karaf\instances\test\etc\jmx.acl.java.lang.Memory.cfg
Creating file:C:\karaf\instances\test\etc\jmx.acl.org.apache.karaf.bundle.cfg
Creating file:C:\karaf\instances\test\etc\jmx.acl.org.apache.karaf.config.cfg
Creating file:C:\karaf\instances\test\etc\jmx.acl.org.apache.karaf.security.jmx.cfg
Creating file:C:\karaf\instances\test\etc\jmx.acl.osgi.compendium.cm.cfg
Creating file:C:\karaf\instances\test\etc\jre.properties
Creating file:C:\karaf\instances\test\etc\keys.properties
Creating file:C:\karaf\instances\test\etc\org.apache.felix.fileinstall-deploy.cfg
Creating file:C:\karaf\instances\test\etc\org.apache.karaf.command.acl.bundle.cfg
Creating file:C:\karaf\instances\test\etc\org.apache.karaf.command.acl.config.cfg
Creating file:C:\karaf\instances\test\etc\org.apache.karaf.command.acl.feature.cfg
Creating file:C:\karaf\instances\test\etc\org.apache.karaf.command.acl.jaas.cfg
Creating file:C:\karaf\instances\test\etc\org.apache.karaf.command.acl.kar.cfg
Creating file:C:\karaf\instances\test\etc\org.apache.karaf.command.acl.shell.cfg
Creating file:C:\karaf\instances\test\etc\org.apache.karaf.command.acl.system.cfg
Creating file:C:\karaf\instances\test\etc\org.apache.karaf.features.obr.cfg
Creating file:C:\karaf\instances\test\etc\org.apache.karaf.features.repos.cfg
Creating file:C:\karaf\instances\test\etc\org.apache.karaf.jaas.cfg
Creating file:C:\karaf\instances\test\etc\org.apache.karaf.kar.cfg
Creating file:C:\karaf\instances\test\etc\org.apache.karaf.log.cfg
Creating file:C:\karaf\instances\test\etc\org.ops4j.pax.logging.cfg
Creating file:C:\karaf\instances\test\etc\org.ops4j.pax.url.mvn.cfg
Creating file:C:\karaf\instances\test\etc\regions-config.xml
Creating file:C:\karaf\instances\test\etc\shell.init.script
Creating file:C:\karaf\instances\test\etc\users.properties
Creating file:C:\karaf\instances\test\etc\org.apache.karaf.features.cfg
Creating file:C:\karaf\instances\test\etc\system.properties
Creating file:C:\karaf\instances\test\etc\org.apache.karaf.shell.cfg
Creating file:C:\karaf\instances\test\etc\org.apache.karaf.management.cfg
Creating file:C:\karaf\instances\test\bin\karaf.bat
Creating file:C:\karaf\instances\test\bin\start.bat
Creating file:C:\karaf\instances\test\bin\stop.bat
karaf@root>
克隆一个实例
代替创建一个新的实例,你可以用: instance:clone 已经存在的实例来克隆
karaf@root()> instance:clone root test
移动实例的位置
默认情况下,新的实例会在 KARAF_HOME/instance的下面,你可以通过命令选择新建或者克隆的实例位置。
karaf@root()> instance:create -v -l /tmp/test test
注instance:destroy自动移除实例,不用手动操作
改变子实例端口号
你可以使用instance:ssh-port-change命令来改变分配给子实例的SSH端口号。命令语法是:
instance:ssh-port-change实例 端口号
karaf@root()> instance:ssh-port-change test 8104
需要注意的必须停止子实例才能运行此命令。
同样,你可以使用 instance:rmi-registry-port-change命令改变分配给子实例的RMI注册端口号。命令的语法是:
karaf@root()> instance:rmi-registry-port-change test 1102
需要注意的必须停止子实例才能运行此命令。
同样,你也可以用instance:rmi-server-port-change 改变RMI Server注册端口号
karaf@root()> instance:rmi-server-port-change test 44447
启动子实例
新的子实例在停止状态下被创建,用 instance:start命令来启动子实例并使之准备主机应用。这个命令需要一个标识你想启动的子实例的instance-name参数。
karaf@root()> instance:start test
列出所有容器实例
要查看一个特定的安装下运行的所有Karaf实例的列表,使用instance:list 命令。
karaf@root>instance:list
SSH Port | RMIRegistry | RMI Server | State |PID | Name
------------------------------------------------------------
8101 | 1099 | 44444 | Started | 3616 | root
连接到子实例
你可以使用instance:connect命令连接到开始的子实例远程控制台,这需要三个参数:
karaf@root()> instance:connect test
一旦你连接到子实例,karaf提示符显示现在实例的名字,如下:
karaf@test()>
你可以使用karaf@test()> logout推出实例
停止一个子实例
在实例自己内部停止一个子实例,输入shutdown。
远程停止子实例,换句话说,从父或者兄弟实例,使用 instance:stop :
karaf@root()> instance:stop test
注销一个子实例
你可以使用instance:destroy命令永久的删除一个停止的子实例:
karaf@root()> instance:destroy test
请注意只有停止的实例可以被注销。
实例重命名
你可以使用instance:rename命令为一个停止的子实例重新命名:
karaf@root()> instance:rename test newTest
八, 安全
管理用户名和密码
默认安全配置使用一个位于 karaf安装目录/etc/users.properties属性文件存储授权的用户和他们的密码。
默认的用户名是karaf,与之相关联的密码也是karaf。我们强烈建议在将karaf转移到产品前通过编辑上面的文件修改默认密码。
在karaf中用户现在被使用在三个地方:
l 访问SSH控制台
l 访问JMX管理层
l 访问web控制台
这三种方式的全部委托基于安全认证的相同的JAAS。
users.properties文件包含一或者多行,每行都定义了一个用户,密码和相关的角色。
USER=PASSWORD,_g_:GROUP,...
管理角色
JAAS角色可以被各种组件使用。三个管理层(SSH,JMX和web控制台)都使用用基于认证系统的全局角色。默认的角色名称在etc/system.properties中使用karaf.local.roles= admin系统属性配置,并且默认值是admin。对管理层进行身份验证的所有用户必须有这个角色的定义。
这个值的语法如下:
[classname:]principal
其中classname是主要对象的类名(默认以org.apache.karaf.jaas.modules.RolePrincipal),主要是这一类(默认为admin)的主要的名称。
注意,可以使用以下配置ConfigAdmin对于一个给定的层改变角色:
Layer |
PID |
Value |
SSH |
org.apache.karaf.shell |
sshRole |
JMX |
org.apache.karaf.management |
jmxRole |
Web |
org.apache.karaf.webconsole |
role |
启用密码加密
为了避免密码是纯文本,密码可以加密存储在配置文件中。
这可以通过以下命令轻易的实现:
# edit config
config:edit org.apache.karaf.jaas
config:propset encryption.enabled true
config:update
# force a restart
dev:restart
用户第一次登录,密码将在 etc/users.properties 配置文件中被自动的加密。加密密码在前面加上{CRYPT},因此很容易识别。
命令行参数执行
列举现在的用户模块aas:realm-lis
karaf@root()> jaas:realm-list
可以通过index管理用户模块jaas:realm-manage
karaf@root()> jaas:realm-manage --index 1
等等如下
jaas:user-list karaf@root()> jaas:user-list
jaas:user-add karaf@root()> jaas:user-add foo bar
jaas:user-delete karaf@root()> jaas:user-delete foo
jaas:group-add karaf@root()> jaas:group-add karaf mygroup
jaas:group-delete karaf@root()> jaas:group-delete karaf mygroup
jaas:group-role-add karaf@root()> jaas:group-role-add mygroup myrole
jaas:group-role-delete karaf@root()> jaas:group-role-delete mygroup myrole
jaas:update
jaas:cancel
管理领域
更多关于更改默认领域或者部署新领域信息将会在开发者指南中被提供。
部署安全供应商
有些应用程序需要特定的安全性提供者可用,如BouncyCastle。JVM在这些jar包的使用上施加一些限制:他们必须签署和引导类路径上可用。部署这些供应商的方法之一是把他们放在位于$ JAVA_HOME/ JRE/lib / ext的JRE文件夹中并且修改安全策略配置($JAVA_HOME/jre/lib/security/java.security)以登记等供应商。
虽然这种方法工作的很好,他将会有全局的影响并且需要你配置所有相应的服务器。
Karaf提供了一个简单的方式来配置额外的安全性提供者:
l 把你的供应商jar放在karaf-install-dir/lib/ext中
l 修改初始化文件 karaf-install-dir/etc/config.properties ,添加如下属性:
org.apache.karaf.security.providers = xxx,yyy
这个属性的值是一个逗号分隔的提供商类名的注册名单。
例如:org.apache.karaf.security.providers = org.bouncycastle.jce.provider.BouncyCastleProvider
此外,你可能想向系统中捆绑的供应商的类提供访问,使所有束可以访问那些。它可以通过在相同的配置文件中修改org.osgi.framework.bootdelegation属性来实现:
org.osgi.framework.bootdelegation = ...,org.bouncycastle*
九, 日志系统
Karaf提供先进的日志管理系统。
就是说应用程序使用任何的日志框架,karaf都可以管理这些日志
在 etc/org.ops4j.pax.logging.cfg 你会发现不同的 Log4j的元素
你也可以加入自己的构造信息。
命令行
Log:clear
清除日志
log:clear
Log:display
显示日志信息
karaf@root()> log:display
Log:exception-display
显示最近发生的异常信息
Log:get
显示日志级别
karaf@root()> log:get
Log:log
插入日志信息
karaf@root()> log:log "Hello World"
log:set
设置日志等级
karaf@root()> log:set DEBUG
log:tail
与log:display一样,但是是连续的显示日志
karaf@root()> log:tail
翻译了 一天头疼啊 ,,,,后面待续请关注