openjweb学习

    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.

  







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值