Spring Boot 里面引入hive-jdbc包,依赖冲突,tomcat启动不了

Posted 格格巫 MMQ!!

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring Boot 里面引入hive-jdbc包,依赖冲突,tomcat启动不了相关的知识,希望对你有一定的参考价值。

SpringBoot 版本不管多少, 只要引入了hive-jdbc, 他指定会让你jar包冲突, 因为不是内嵌tomcat问题,就是和tomcat jar包冲突

遇到了大坑,所以在这里记录下,让各位不要遇到这种问题了

这次使用tomcat进行启动的时候,有遇到了错误

tomcat 作为容器进行启动的时候爆出的错误


上面这个错误tomcat8.0启动会报这个错误

tomcat8.5会报这个错误

Caused by: java.lang.StackOverflowError at org.apache.logging.log4j.spi.Logg

就是因为引入了这个jar包

org.apache.hive hive-jdbc 3.1.1 这个Hive-jdbc的jar包中,引入了很多的jar包,所以要是冲突了需要把个别的冲突jar包进行排除掉
	<dependency>
		<groupId>org.apache.hive</groupId>
		<artifactId>hive-jdbc</artifactId>
		<version>3.1.1</version>
		<exclusions>
			<exclusion>
				<groupId>ch.qos.logback</groupId>
				<artifactId>logback-classic</artifactId>
			</exclusion>
			<exclusion>
				<groupId>org.apache.logging.log4j</groupId>
				<artifactId>log4j-slf4j-impl</artifactId>
			</exclusion>
			<exclusion>
				<groupId>org.slf4j</groupId>
				<artifactId>slf4j-log4j12</artifactId>
			</exclusion>
			<exclusion>
				<groupId>org.eclipse.jetty.orbit</groupId>
				<artifactId>*</artifactId>
			</exclusion>
			<exclusion>
				<groupId>org.eclipse.jetty.aggregate</groupId>
				<artifactId>*</artifactId>
			</exclusion>
			<exclusion>
				<groupId>tomcat</groupId>
				<artifactId>*</artifactId>
			</exclusion>
			<exclusion>
				<groupId>javax.servlet</groupId>
				<artifactId>servlet-api</artifactId>
			</exclusion>
			<exclusion>
				<groupId>org.mortbay.jetty</groupId>
				<artifactId>*</artifactId>
			</exclusion>
		</exclusions>
	</dependency>

以上之后重新打包,tomcat启动成功!

=2019年5月8日08:48:04更新=

最后再说一句:如果你只需要hive-jdbc这个jar包

请这样写

org.apache.hive hive-jdbc 3.1.1 * * 排除所有其他无关jar包

以上是关于Spring Boot 里面引入hive-jdbc包,依赖冲突,tomcat启动不了的主要内容,如果未能解决你的问题,请参考以下文章

Spring Boot中Starter是什么

关于spring-boot中mongodb包的一个奇怪的版本问题

Spring Boot 整合web层之JSON的使用

Spring Boot:定时任务

spring-boot-maven-plugin 安装本地jar 包

和spring cloud/boot 学习如何管理自己的组件