问题描述
- Sring mvc +mybatis部署tomcat导致tomcat启动假死
-
mybatis如果出现如下错误会导致tomcat假死并且等待很长时间才报错,错误信息不准确,导致tomcat栈溢出,修改了tomcat内存参数之后,错误原因可以看出来,但是tomcat终端一直报错,停不下来,求解
Spring公共配置<!-- 使用annotation 自动注册bean, 并保证@Required、@Autowired的属性被注入 --> <context:component-scan base-package="com.hukan.hkhx"> <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller" /> <context:exclude-filter type="annotation" expression="org.springframework.web.bind.annotation.ControllerAdvice" /> </context:component-scan> <!-- MyBatis配置 --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> <!-- 自动扫描entity目录, 省掉Configuration.xml里的手工配置 --> <property name="typeAliasesPackage" value="com.hukan.hkhx.entity" /> <!-- 显式指定Mapper文件位置 --> <property name="mapperLocations" value="classpath:/mybatis/*/*Mapper.xml" /> </bean> <!-- 扫描basePackage下所有以@MyBatisRepository标识的 接口 --> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="com.hukan.hkhx.repository.*" /> <property name="annotationClass" value="com.base.common.MyBatisRepository" /> </bean> <!-- 另一个事务管理器, Jdbc单数据源事务 --> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource" /> </bean> <!-- 使用annotation定义事务 --> <tx:annotation-driven transaction-manager="transactionManager" proxy-target-class="true" /> <!-- JSR303 Validator定义 --> <!-- <bean id="validator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean" /> --> <!-- production环境 --> <beans profile="production"> <context:property-placeholder ignore-unresolvable="true" location="classpath*:/application.properties" /> <!-- 数据源配置, 使用Tomcat JDBC连接池 --> <bean id="dataSource" class="org.apache.tomcat.jdbc.pool.DataSource" destroy-method="close"> <!-- Connection Info --> <property name="driverClassName" value="${jdbc.driver}" /> <property name="url" value="${jdbc.url}" /> <property name="username" value="${jdbc.username}" /> <property name="password" value="${jdbc.password}" /> <!-- Connection Pooling Info --> <property name="maxActive" value="${jdbc.pool.maxActive}" /> <property name="maxIdle" value="${jdbc.pool.maxIdle}" /> <property name="minIdle" value="0" /> <property name="defaultAutoCommit" value="false" /> </bean>
解决方案
http://blog.csdn.net/huangcongjie/article/details/7638912
解决方案三:
是配置之后就一直这样还是你写了这个方法之后这样了?
解决方案四:
现在的项目也是这个框架,刚开始也是启动不了,每次都是加载到jdbc配置时不动了,然后超过tomcat 启动限制时间才报错。但报错又不准确,后来才发现是mybatis sql 配置文件里写错了。所以出现这种问题检查自己的sql 配置文件吧
解决方案五:
现在的项目也是这个框架,刚开始也是启动不了,每次都是加载到jdbc配置时不动了,然后超过tomcat 启动限制时间才报错。但报错又不准确,后来才发现是mybatis sql 配置文件里写错了。所以出现这种问题检查自己的sql 配置文件吧
解决方案六:
这应该是mybatis的一个bug,编译错误,没有报异常抛出来。
解决办法如下
http://codeorg.cn/exceptions/view/java/1.html
时间: 2024-10-29 11:59:38