osgi 程序 开发 说明v100.docx
《osgi 程序 开发 说明v100.docx》由会员分享,可在线阅读,更多相关《osgi 程序 开发 说明v100.docx(12页珍藏版)》请在冰豆网上搜索。
osgi程序开发说明v100
目录
第1章Osgi例子程序说明2
1.1系统结构2
1.1.1Osgiframeworkbundle2
1.1.2Tomcatbundle2
1.1.3SpringDMbundle2
1.1.4ThirdPartybundle3
1.1.5Servicebundle4
1.1.6Webbundle4
1.2展示流程4
1.2.1动态加载类功能5
1.2.2动态更新业务逻辑实现7
1.2.3动态切换数据库10
1.3恢复到初始状态13
第1章Osgi例子程序说明
系统结构
Osgiframeworkbundle
org.eclipse.osgi_3.2.2.R32x_v20070118.jar
Tomcatbundle
catalina.osgi-5.5.23-SNAPSHOT.jar
jasper.osgi-5.5.23-SNAPSHOT.jar
catalina.start.osgi-1.0-SNAPSHOT.jar
servlet-api.osgi-2.5-SNAPSHOT.jar
jsp-api.osgi-2.0-SNAPSHOT.jar
jstl.osgi-1.1.2-SNAPSHOT.jar
commons-el.osgi-1.0-SNAPSHOT.jar
SpringDMbundle
spring-osgi-annotation-1.1.0.jar
spring-osgi-core-1.1.0.jar
spring-osgi-extender-1.1.0.jar
spring-osgi-io-1.1.0.jar
spring-osgi-web-1.1.0.jar
spring-osgi-web-extender-1.1.0.jar
ThirdPartybundle
org.springframework.aop-2.5.6.A.jar
org.springframework.beans-2.5.6.A.jar
org.springframework.context-2.5.6.A.jar
org.springframework.context.support-2.5.6.A.jar
org.springframework.core-2.5.6.A.jar
org.springframework.jdbc-2.5.6.A.jar
org.springframework.orm-2.5.6.A.jar
org.springframework.transaction-2.5.6.A.jar
org.springframework.web-2.5.6.A.jar
org.springframework.web.servlet-2.5.6.A.jar
com.springsource.oracle.jdbc-10.2.0.2.jar
.mysql.jdbc-5.1.6.jar
com.springsource.javax.resource-1.5.0.jar
com.springsource.javax.transaction-1.1.0.jar
com.springsource.org.aopalliance-1.0.0.jar
mons.logging-1.1.1.jar
log4j.osgi-1.2.15-SNAPSHOT.jar
Servicebundle
hibernate-class-3.2.6.ga.jar
com.xunjie.osgi.example.log4j.config_1.0.0.jar(fragmentbundle)
com.xunjie.osgi.example.model-role_1.0.0.jar
com.xunjie.osgi.example.oracle.config_1.0.0.jar(fragmentbundle)
com.xunjie.osgi.example.service_1.0.0.jar
com.xunjie.osgi.example.session_1.0.0.jar
com.xunjie.osgi.exapmle.mysql.config_1.0.0.jar(fragmentbundle)
Webbundle
simpleweb.war
展示流程
解压缩osgi.rar到任意文件夹,以下假设解压缩到了d:
\osgi,双击文件夹中的eclipse.exe启动系统,出现如图的控制台:
表示系统启动成功。
动态加载类功能
在控制台键入ss,然后回车,可以看到:
Bundlemodel_role不是处于active状态。
在ie浏览器里输入url地址http:
//localhost:
8080/simpleweb/sql.jsp
在出现的页面中输入fromUser,点击Submit按钮,得到结果:
回退到sql.jsp页面,
在出现的页面中输入fromRole,点击Submit按钮,得到结果:
表明在我们目前的SessionFactory中,没有Role的映射。
在控制台输入start37,回车。
然后在sql.jsp页面再次输入fromRole,点击Submit按钮:
得到结果:
动态更新业务逻辑实现
在控制台依次输入stop37,回车
然后输入uninstall37,回车
把D:
\osgi\变化的jar包\替换后\com.xunjie.osgi.example.model-role_1.0.0.jar文件拷贝到D:
\osgi\plugins,替换原有的文件。
在控制台依次输入installfile:
///d:
/osgi/plugins/com.xunjie.osgi.example.model-role_1.0.0.jar,回车
注意得到的bundleid,然后start这个id,回车
然后输入refresh这个id,回车
返回sql.jsp页面,输入fromRole,点击Submit按钮
得到结果:
每条记录前面多了”信息”两个字,java类的内部实现已经改变。
动态切换数据库
以上的两个测试是基于192.168.102.206的oracle数据库进行的,下面我们切换到192.168.102.76的mysql数据库。
在控制台依次输入stop36,回车
然后输入uninstall36,回车
这个时候我们可以访问url地址http:
//localhost:
8080/simpleweb/webstatus.html
web服务没有停止。
把D:
\osgi\变化的jar包\替换后\com.xunjie.osgi.example.session_1.0.0.jar文件拷贝到D:
\osgi\plugins,替换原有的文件。
在控制台依次输入installfile:
///d:
/osgi/plugins/com.xunjie.osgi.example.session_1.0.0.jar,回车
注意得到的bundleid,然后start这个id,回车
然后输入refresh这个id,回车
返回sql.jsp页面,输入fromRole,点击Submit按钮
得到结果:
是从192.168.102.76的mysql数据库取出的数据。
恢复到初始状态
在控制台输入close,回车关闭控制台
删除D:
\osgi\work目录
D:
\osgi\configuration\org.eclipse.osgi目录
用D:
\osgi\变化的jar包\替换前目录下的两个jar文件替换掉D:
\osgi\plugins下的两个文件。