openjweb学习

来源:互联网 发布:2016java一年经验工资 编辑:程序博客网 时间:2024/06/05 18:24
    openjweb是北京托众公司开发的一款开源产品。是一个应用快速开发平台。我关心其中涉及的技术。这个项目有很多可以借签的地方。绝大部分人可能只会一部分,并且在项目中还没有用到。我打算清明前后对它进行一个系统的学习。下面罗列的技术大概可以涵盖web项目绝大多数的技术需求:


OpenJWeb 1.9版本集成了以下框架和组件:

(1) MVC框架主要采用struts2.0.14+spring2.5.6+hibernate3

(2) 安全框架采用spring security2.0

(3) struts1.2(从上一版本移植过来的部分功能仍采用struts1.2)

(4) cas server单点登录服务器+springsecurity集成

(5)dwr3

(6)fckedit在线编辑器

(7)dhtmlxtree树形组件

(8)jotm JTA 跨数据库事务(基于tomcat)

(9)groovy动态语言

(10)apache lucene3.0全文搜索引擎

(11)基于openfire+spark+smack的Java即时通讯解决方案

(12)JFreeChart图表

(13)Fusion Charts ,Flex图表。

(14)集成James邮件服务器,并开发了web邮件管理客户端

(15)集成flex框架

(16) 图形化工作流设计器。



按照文档说明,安装成功。

但是真正准备学习其源码,查看src文件才发现全是空的。也就是没有提供代码,只有jar文件。

那只能反编译吧。感谢java decompiler.

 我是从web.xml开始看,Servlet:

                      org.directwebremoting.servlet.DwrServlet,

                      net.fckeditor.connector.ConnectorServlet,

                     org.codehaus.xfire.spring.XFireSpringServlet,

Filter:org.apache.struts2.dispatcher.FilterDispatcher

listener-class:org.springframework.web.context.ContextLoaderListener


 /WEB-INF/classes/applicationContext-security-new.xml 
   <!--/WEB-INF/classes/applicationContext-security.xml-->
            <!--/WEB-INF/classes/datasource.xml
/WEB-INF/classes/core-service.xml
            -->
/WEB-INF/classes/core-service-demo.xml 
<!--/WEB-INF/core-service-demo.xml-->
            /WEB-INF/classes/rmi-server.xml
   /WEB-INF/classes/rmi-client.xml
<!--/WEB-INF/classes/core-service-ds1.xml -->
   <!-- /WEB-INF/classes/system-config.xml-->
   <!-- /WEB-INF/classes/core-xfire-webservice.xml --> <!--test!-->
/WEB-INF/xfire-servlet.xml
  /WEB-INF/classes/quartz-schedule.xml 

     数据库用jndi,放在 tomcat/conf/server.xml里面,在core-service-demo.xml内

数据层用jdbc和hibernet,数据源用jndi。

websrvice用的是xfire. 顺带说下 时下webservice开源框架还有axis,cxf等等。

web service准确的说是在socket上跑http协议,然后用http承载xml。

从网络协议栈的观点来看,RMI与socket的网络编程处于不同层次上。基于socket的网络编程位于TCP协议之上,而RMI在TCP协议之上,又定义了自己的应用协议,其传输层采用的是Java远程方法协议(JRMP)。

ice也是一种rmi的实现.

spring对rmi和webservice都有封装。


在core-service-demo.xml中有个org.springframework.remoting.caucho.HessianProxyFactoryBean,就是。

Spring2 针对远程访问服务,提供的一个remote包。其的的是提供一套统一的远程服务发布功能。
先来看一下Spring2支持那些远程服务功能:
    1. RMI服务 org.springframework.remoting.rmi.RmiServiceExporter
    2. Hessian或者Burlap通过HTTP远程调用服务 org.springframework.remoting.caucho.HessianProxyFactoryBean
    3. HTTP调用器暴露服务

     系统里面所有前台对后台的调用,都是通过dwr实现的。

dwr应该类似一个servlet处理+js客户端。当js客户端发来请求,servlet根据规定的协议调用后台对应的java类方法。

使用dwr可以规避在jsp中的java编程。

    im的客户端通讯可以用org.jivesoftware.smack.Chat,但这里用的是伪im,客户端是把消息发送到数据库,再从数据库定时读取。

smack是基于xmpp的java实现,以前做过一个基于.net的im实现,asgxmpp。服务端都是用openfire.

  







原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 来大姨妈想吐怎么办 3岁宝宝体重轻怎么办 硕士延期毕业考上博士怎么办 中国人移民欧洲饮食不习惯怎么办 出车祸了报警警察不管怎么办 高中的孩子不好好上学怎么办 和老公消费观念不合拍怎么办 去医院没带现金怎么办 微信读书下架了怎么办 24岁血压有点高怎么办 吃鸡鼠标弹出来怎么办 电脑分辨率调错了怎么办 猎豹sc9打不开门怎么办 苹果手机卡顿反应慢怎么办 金立手机卡顿反应慢怎么办 20天宝宝黄疸219怎么办? 智慧树选修挂科怎么办 军人被纠察抓了怎么办 我家的小孩很凶怎么办 10岁儿童老挤眼怎么办? 脚趾长鸡眼好痛怎么办 月加班超过36小时怎么办 月经老提前怎么办才好 20岁例假不规律怎么办 农村的医保门诊封顶了怎么办 保研夏令营被拒怎么办 小学生去英国游学怎么办签证 医生说我湿气重怎么办 喉咙痛有来医生感冒喉咙痛怎么办 暴马丁香叶子卷怎么办 房产权40年以后怎么办 面试回答不了考官的问题怎么办 轻伤事故对方要钱太多我怎么办 退休后有房子住公积金怎么办 江苏副高评过不聘怎么办 抗环瓜氨酸肽抗体高怎么办 脚被磨破了好痛怎么办 脚磨破皮肿了怎么办 脚磨破皮发炎了怎么办 3个月婴儿流口水怎么办 beats耳机被偷了怎么办