OSGI实战书上讲了一个web登陆验证切换功能。表达了osgi的一些用途。
照着弄了哈。开发环境:
eclipse-jee-indigo-win32
共四个项目:
webosgi,UserValidator,LDAPValidator,DBValidator
在eclipse里面启动项目:
勾上4个项目,Deselect All,然后勾上以下服务:
run,效果如下:
访问地址:http://localhost/webosgi/login.action后得到如下结果:
osgi> LDAPValidatorImpl.validate()
如果你想切换成DBValidator的实现,使用命令:
osgi> stop 52
58已经启动,如果没启动,执行命令:osgi> start 58
在访问 http://localhost/webosgi/login.action后得到:
osgi> DBValidatorImpl.validate()
如果你想在eclipse之外运行该列子,手动制作启动程序。不外乎就是把eclipse里面用的jar弄出来。随便取个名字osgi_service。
把项目导出来。Export-->Plug-in Development-->Deployable plug-ins and fragments
启动 osgi_service,如图:
在激活服务:
osgi> start 10 11 12 13
osgi> ss
Framework is launched.
id State Bundle
0 ACTIVE org.eclipse.osgi_3.7.0.v20110613
1 ACTIVE org.eclipse.osgi.services_3.3.0.v20110513
2 ACTIVE javax.servlet_2.5.0.v201103041518
3 ACTIVE org.mortbay.jetty.server_6.1.23.v201012071420
4 ACTIVE org.eclipse.equinox.common_3.6.0.v20110523
5 ACTIVE org.mortbay.jetty.util_6.1.23.v201012071420
6 ACTIVE org.eclipse.equinox.http.servlet_1.1.200.v20110502
7 ACTIVE org.eclipse.equinox.registry_3.5.100.v20110502
8 ACTIVE org.eclipse.equinox.http.jetty_2.0.100.v20110502
9 ACTIVE org.eclipse.equinox.http.registry_1.1.100.v20110502
10 ACTIVE webosgi_1.0.0
11 ACTIVE UserValidator_1.0.0
12 ACTIVE LDAPValidator_1.0.0
13 ACTIVE DBValidator_1.0.0
访问试试:http://localhost:8080/webosgi/login.action
http://localhost:8080/webosgi/page/index.html