美文网首页
问题:Initializing c3p0 pool... com

问题:Initializing c3p0 pool... com

作者: cf6bfeab5260 | 来源:发表于2019-09-24 15:25 被阅读0次
image.png

如图, 程序启动的时候直接卡在了 Initializing c3p0 pool... com.mchange.v2.c3p0.ComboPooledDataSource 这一句,后面就没日志了。

image.png

但是稍微看一下jvm状态:


image.png

可以发现 进程其实是没死的,eden区还在缓慢增长。
所以猜测,只是日志没打印出来,导致像卡住了。把日志开到debug级别,再启动:


image.png

会发现,其实日志是有的, mybaits一直在加载mapper。
这里其实是mybatis结合spring时的一个坑,当mapper文件有语法错误时,spring会循环重试。但是。。没有打印log出来。解决方案是重写sqlsessionfactory,把日志打出来:

/**
 * @author: zenghong
 * @Date: 2019/9/3 09:42
 * @Description: 重写sqlsessionfactory,解决ibatis+spring,当mapper语法错误时,无异常日志,无限重复加载的问题。
 */
public class MySqlSessionFactory extends SqlSessionFactoryBean {
    @Override
    protected SqlSessionFactory buildSqlSessionFactory() throws IOException {
        try {
            return super.buildSqlSessionFactory();
        }catch (Exception e){
            e.printStackTrace();
            throw e;
        }finally {
            ErrorContext.instance().reset();
        }

    }
}

然后 factory改成重写这个:

 <bean id="writeSqlSessionFactory" class="com.jccfc.worker.center.dal.MySqlSessionFactory">
    <!--<bean id="writeSqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">-->
        <property name="dataSource" ref="writeDataSource"/>
        <property name="configLocation" value="classpath:mybatis/mybatis-config.xml"/>
        <property name="mapperLocations" value="classpath:mybatis/mapper/*.xml"/>
    </bean>

再重启:


image.png

日志会很没明确告诉你哪个文件 哪一行 什么错误

相关文章

网友评论

      本文标题:问题:Initializing c3p0 pool... com

      本文链接:https://www.haomeiwen.com/subject/wixhyctx.html