Dubbo Main启动方式踩坑记录


这是本人第一次写博客,注册博客园已经有一段时间,由于工作上碰到了一些问题,由此记录一下。

Dubbo的容器模块,是一个独立的容器,因为服务通常不需要Tomcat/JBoss等Web容器的特性,没必要用Web容器去加载服务。

一:运行spring容器的方式有三种

1:使用tomcat、jetty等servlet容器运行

2:自己写一个Main方法运行

3:使用dubbo框架提供的Main方法运行

下面是启动dubbo main的代码

  public static void main(String[] args) {
        logger.debug("DubboProvider start...");

        try {
            // 初始化Spring
            @SuppressWarnings("resource")
            ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("commonspring/applicationContext.xml");
            ctx.start();
            logger.error("dubbo provider is running...?>>>>>>>>>>>>>");
             System.in.read();
        } catch (Exception ex) {
            logger.error("dubbo服务提供启动异常!", ex);
        }
     
    }

下面是jar的shell启动脚本

上面的dubbo main代码有时候无法后台运行,会出现io异常。所以对dubbo main代码做了优化:

  public static void main(String[] args) {
        logger.debug("DubboProvider start...");

        try {
            // 初始化Spring
            @SuppressWarnings("resource")
            ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("commonspring/applicationContext.xml");
            ctx.start();
            logger.error("dubbo provider is running...?>>>>>>>>>>>>>");
            // System.in.read();
        } catch (Exception ex) {
            logger.error("dubbo服务提供启动异常!", ex);
        }
        synchronized (DubboProvider.class) {
            while (true) {
                try {
                    DubboProvider.class.wait();
                } catch (InterruptedException e) {
                    logger.error("== synchronized error:", e);
                }
            }
        }
    }
以上代码就能运行不出问题。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM