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

找到<proxies>,在里面加入

<proxy>

<id>optional</id>

<active>true</active>

<protocol>http</protocol>

<host>proxy.fxis.co.jp</host>

<port>8080</port>

</proxy>

因为网络原因,我们选择使用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><tab>Display all 182 possibilities? (y or n)

*: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提供先进的日志管理系统。

  • the OSGi Log Service
  • the Apache Log4j framework
  • the Apache Commons Logging framework
  • the Logback framework
  • the SLF4J framework
  • the native Java Util Logging framework

就是说应用程序使用任何的日志框架,karaf都可以管理这些日志

在 etc/org.ops4j.pax.logging.cfg 你会发现不同的 Log4j的元素

  • loggers
  • appenders
  • layouts

你也可以加入自己的构造信息。

命令行

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

翻译了 一天头疼啊 ,,,,后面待续请关注

karaf学习 (2)相关推荐

  1. maven,OSGI,karaf 学习笔记

    研一时在 opendaylight 控制器上开发过路由插件,当时开发时半懂不懂的,很多东西都没弄清楚.最近为找找工作做准备,准备重新好好学习 opendatlight. opendatlight 源码 ...

  2. Apache Karaf 学习和安装

    karaf 简介 karaf是一个基于osgi的运行环境,同时也是发布和运行osgi服务的容器,可以帮助开发者进行灵活的部署,并且各个组件之间的聚合关系又有些类似spring的aop编程,在各个文档中 ...

  3. 史上最全的“大数据”学习资源

    2019独角兽企业重金招聘Python工程师标准>>> 资源列表: 关系数据库管理系统(RDBMS) 框架 分布式编程 分布式文件系统 文件数据模型 Key -Map 数据模型 键- ...

  4. 干货丨不可错过的大数据学习资源推荐

    今天为大家推荐一些翻译整理的大数据相关的非常棒的学习资源,希望能给大家一些帮助. 关系数据库管理系统(RDBMS) MySQL:世界最流行的开源数据库: PostgreSQL:世界最先进的开源数据库: ...

  5. apache karaf_未来是Apache Karaf上的微服务架构

    apache karaf 这是Jamie Goodyear的客座博客文章( 博客 , @ icbts ). 他是Savoir Technologies的开源倡导者,Apache开发人员和计算机系统分析 ...

  6. 未来是Apache Karaf上的微服务架构

    这是Jamie Goodyear的客座博客文章( 博客 , @ icbts ). 他是Savoir Technologies的开源倡导者,Apache开发人员和计算机系统分析师: 他为全球大型组织设计 ...

  7. 最全的“大数据”学习资源

    关系数据库管理系统(RDBMS) 框架 分布式编程 分布式文件系统 文件数据模型 Key -Map 数据模型 键-值数据模型 图形数据模型 NewSQL数据库 列式数据库 时间序列数据库 类SQL处理 ...

  8. karaf_未来是Apache Karaf上的微服务架构

    karaf 这是Jamie Goodyear的客座博客文章(博客, @ icbts ). 他是Savoir Technologies的开源倡导者,Apache开发人员和计算机系统分析师: 他为全球大型 ...

  9. 大数据学习资源最全版本(收藏)

    资源列表: 关系数据库管理系统(RDBMS) 框架 分布式编程 分布式文件系统 文件数据模型 Key -Map 数据模型 键-值数据模型 图形数据模型 NewSQL数据库 列式数据库 时间序列数据库 ...

最新文章

  1. android子线程没有运行完,android假如主线程依赖子线程A的执行结果,如何让A执行完成,之后主线程再往下执行呢?...
  2. Java进阶篇(五)——Java的I/O技术
  3. TransmittableThreadLocal详解
  4. hybris impex里的小括号语法
  5. linux php运行用户名和密码,Linux实例(一)使用用户名密码验证连接Linux
  6. 第五十九期:如何在Windows 10中执行Windows Defender离线扫描?
  7. javascript实现页面中回到顶部功能
  8. cmd imp导入dmp文件_exp/imp、expdp/impdp使用总结,这些你都清楚吗?
  9. java 获取文件扩展名_如何在Java中获取文件扩展名
  10. UILabel常见属性
  11. 批量释放系统共享内存
  12. pycharm编程工具自带python环境_PyCharm配置Python3开发环境
  13. Dijkstra算法结合时间窗规划无冲突路径
  14. SI24R1切换收发模式问题调试与解决
  15. python装饰图解_Python装饰器(Decorate)使用图解
  16. JS怎么唤醒高德导航
  17. 壹度同城新零售系统v4.1.23 社交电商 同城商城
  18. 如何改变 Git 字体大小
  19. HTML+CSS+JS零食官网网站设计——美食零食官网(6页) html网页制作期末美食作业成品_小吃类网页设计期末作业
  20. 服务器上挂网站怎么挂,网站怎样上挂到云服务器

热门文章

  1. 车祸相关公开数据集(免费下载)
  2. python五子棋ai_零基础学Python之—AI五子棋(1)
  3. 毕业设计:基于STM32与机智云平台的远程控制智能家居系统
  4. 金仓数据库 KingbaseES 客户端编程接口指南 - JDBC(11. JDBC 示例说明)
  5. win10解决0xc000007b错误办法
  6. 水的黏度 Viscosity of Water
  7. C语言界面列表的滑动效果,jQuery+ajax实现滚动到页面底部自动加载图文列表效果(类似图片懒加载)...
  8. LiquiBase实战总结
  9. 【数据结构】赫夫曼树
  10. 【Python 实战基础】Flask 蓝图 Blueprint 怎么用以及怎么集成 Bootstrap