Felix+Struts2搭建OSGI Web开发框架(三)

3 篇文章 0 订阅

在前两节中,分别做了felix Struts2集成和Hibernate在OSGi中的使用,这一节将这两个功能集成到一起。

1、将webapp加到Eclipse中:截图如下:


图1

2、将host-register、host-Register-api放到src/bundles/2/下,将host-Hiberbundle、host-HiberExtension放到src/bundles/3/下。这是因为在web开发中,2、3代表了启动的优先级。

3、然后启动tomcat,将webapp加入到tomcat运行中。

4、打开浏览器,输入:   http://localhost:8080/webapp/osgi/admin/shell.action,出现shell界面,输入ps,得到如下:


图2

5、安装本节例子:

图3

使用File->export->Deployable plug-ins and fragments->选择输出地点

解压,找到com.example.login.web*.jar

在图2所示的命令行中输入:

install  file:/你的com.example.login.web*.jar地址

install命令执行以后,会给该bundle分配一个bundleid,

start  bundleid

结果如图:


图4

6、访问:http://localhost:8080/webapp/login/loginpageshow.action,输入bing,123

效果如下:


图5

点击submit,

出现结果:



图6

现在打开mysql客户端,可以看到<二>中的图2的效果,说明调用Hibernate成功。


说明:在本例中,功能中并没有和Hibernate结合很紧密,只是调用了Hibernate的service,主要是通过这个功能测试该集成框架在web中是否work well。调通了以后,可以根据自己喜好、需要,任意修改程序以及实现。

注意:在将Hibernate集成到web中,会出现Hibernate的EhCacheProvider无法找到ehcache-failsaft.xml文件,原因是该文件在lib/ehcache.jar的跟路径下,但是当ehcache作为host-Hiberbundle安装到web中以后,所有的资源属于该bundle,不存在jar的资源url,所以,原来的cacheProvider会出现无法找到ehcache-failsaft.xml的错误。经过查询资源以及Hibernate的ehcache使用方法,可以在Hibernate.cfg.xml中配置如下

<property name="hibernate.cache.provider_class">com.bing.cacheProvider.MyCacheProvider</property>
		<property name="hibernate.cache.provider_configuration_file_resource_path">/ehchache.xml</property>
		<property name="cache.use_query_cache">true</property>
第三条说明开启二级缓存。第一条制定自定义的CacheProvider,源码中的Provider类,仅仅是修改了寻找ehcache.xml文件的地址以及方法,其他并无大改。

第二条指定了配置文件的位置。

这些属性配置,以及cacheProvider类,可以根据自己需求任意修改,或者提供更好的方法解决上述exception。

源码地址:

http://download.csdn.net/detail/icecream0/4318320

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值