springboot整合hive-jdbc遇到的坑


問題描述:springboot整合hive-jdbc時,pom文件加入hive-client依賴,eclipse啟動,項目正常啟動,訪問正常。打成jar包放到服務器啟動正常,訪問報錯如下:

org.apache.jasper.JasperException: /views/public.jsp(3,62) PWC6188: The absolute uri: http://java.sun.com/jsp/jstl/core cannot be resolved in either web.xml or the jar files deployed with this application
at org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:89) ~[jsp-2.1-6.1.14.jar!/:6.1.14]
at org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:375) ~[jsp-2.1-6.1.14.jar!/:6.1.14]
at org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:169) ~[jsp-2.1-6.1.14.jar!/:6.1.14]
at org.apache.jasper.compiler.TagLibraryInfoImpl.generateTLDLocation(TagLibraryInfoImpl.java:433) ~[jsp-2.1-6.1.14.jar!/:6.1.14]
at org.apache.jasper.compiler.TagLibraryInfoImpl.<init>(TagLibraryInfoImpl.java:238) ~[jsp-2.1-6.1.14.jar!/:6.1.14]
at org.apache.jasper.compiler.Parser.parseTaglibDirective(Parser.java:498) ~[jsp-2.1-6.1.14.jar!/:6.1.14]
at org.apache.jasper.compiler.Parser.parseDirective(Parser.java:578) ~[jsp-2.1-6.1.14.jar!/:6.1.14]
at org.apache.jasper.compiler.Parser.parseElements(Parser.java:1642) ~[jsp-2.1-6.1.14.jar!/:6.1.14]
at org.apache.jasper.compiler.Parser.parse(Parser.java:181) ~[jsp-2.1-6.1.14.jar!/:6.1.14]
at org.apache.jasper.compiler.ParserController.doParse(ParserController.java:239) ~[jsp-2.1-6.1.14.jar!/:6.1.14]
at org.apache.jasper.compiler.ParserController.parse(ParserController.java:156) ~[jsp-2.1-6.1.14.jar!/:6.1.14]
at org.apache.jasper.compiler.Parser.processIncludeDirective(Parser.java:390) ~[jsp-2.1-6.1.14.jar!/:6.1.14]
at org.apache.jasper.compiler.Parser.parseIncludeDirective(Parser.java:427) ~[jsp-2.1-6.1.14.jar!/:6.1.14]
at org.apache.jasper.compiler.Parser.parseDirective(Parser.java:570) ~[jsp-2.1-6.1.14.jar!/:6.1.14]
at org.apache.jasper.compiler.Parser.parseElements(Parser.java:1642) ~[jsp-2.1-6.1.14.jar!/:6.1.14]
at org.apache.jasper.compiler.Parser.parse(Parser.java:181) ~[jsp-2.1-6.1.14.jar!/:6.1.14]
at org.apache.jasper.compiler.ParserController.doParse(ParserController.java:239) ~[jsp-2.1-6.1.14.jar!/:6.1.14]
原因分析:貌似是缺少jstl的jar包,檢查后發現自己項目lib里有啊~~~,實際原因:jar包沖突。因為springboot內嵌tomcat,而hive-jdbc也有一堆附加依賴tomcat、jasper的jar(具體沒看,大概瞅了一眼)。

解決:hive-jdbc依賴排除一切和自己想要的功能無關附加依賴,具體如下:

<dependency>
<groupId>org.apache.hive</groupId>
<artifactId>hive-jdbc</artifactId>
<version>2.3.2</version>
<exclusions>
<exclusion>
<groupId>org.eclipse.jetty.aggregate</groupId>
<artifactId>jetty-all</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.hive</groupId>
<artifactId>hive-shims</artifactId>
</exclusion>
<exclusion>
<artifactId>jasper-compiler</artifactId>
<groupId>tomcat</groupId>
</exclusion>
<exclusion>
<artifactId>jasper-runtime</artifactId>
<groupId>tomcat</groupId>
</exclusion>
<exclusion>
<artifactId>servlet-api</artifactId>
<groupId>javax.servlet</groupId>
</exclusion>
<exclusion>
<artifactId>log4j-slf4j-impl</artifactId>
<groupId>org.apache.logging.log4j</groupId>
</exclusion>
<exclusion>
<artifactId>slf4j-log4j12</artifactId>
<groupId>org.slf4j</groupId>
</exclusion>
<exclusion>
<groupId>tomcat</groupId>
<artifactId>*</artifactId>
</exclusion>
<exclusion>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
</exclusion>
<exclusion>
<groupId>org.eclipse.jetty.orbit</groupId>
<artifactId>*</artifactId>
</exclusion>
<exclusion>
<groupId>org.eclipse.jetty.aggregate</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>
OK,頁面訪問正常了~

 

————————————————
版權聲明:本文為CSDN博主「-小末」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/u013189824/article/details/80451095


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM