ofbiz的启动



启动:
        总的流程,start.java根据startup.properties启动ofbiz,然后根据ofbiz-containers.xml启动配置的container,完成启动过程。
        Start.java
                本身是一个线程,可以接收指令,停止OFbiz,
                注意一个用法:setShutDownHook,可以设置线程退出时执行的内容,参考Rumtime.addShutdownHook(Thread hook)
            在startServer()中,首先通过Classpath对象,初始化需要使用的lib,构造ClassLoader,然后通过StartupLoader,来启动Server
            Config类对应了startup.properties, 然后containerConfig根据ofbiz-containers.xml
            org.ofbiz.base.container.ContainerLoader.load()
            然后启动,ofbiz-containers.xml中定义的各container,与对应的class,
                component-container,org.ofbiz.base.container.ComponentContainer
                classloader-container
                jotm-container
                rmi-dispatcher
                jetty-container
                beanshell-container
            load这些对应的class
   
             1)component-container   
             ComponentLoaderConfig,根据component-load.xml获得需要load 的 component的列表

            接下来,启动每个component,在每个component的目录下有ofbiz-component.xml的配置文件,ofbiz根据此进行load component,然后 Container.start();所谓的load component其实也就是更改classpath
        ComponentConfig.java对应了,ofbiz-component.xml,
            在jetty中,会再次根据component是否配置了,webapp来确定加载那些webapp到WebApplicationContext中
        2) classloader-container
        3) jotm-container
            用于transaction 处理
        4) rmi-dispatcher
            实例化RemoteDispatcherImpl,应该是启动了rmi server端,但是对于web开发可能没用,对于其他需要客户端应用程序,可以通过rmi client连接到rmi server.
            实例化delegator,dispacher,从而读取了entity,service的配置

        5) jetty-container
            启动jetty服务
        6)   beanshell-container
             启动beanshell      




        Classpath.java
                使用一个vector记录classpath,vector中的每一条代表一个classpath中的项,如一个jar文件
                然后重新构造一个ClassLoader,供所有后续使用,
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值