本地运行时倒是没啥问题,一上线启动接连报错。网上各种找答案,本质上还是依赖冲突报错,不知道使用哪个具体类
Caused by: java.lang.NoSuchMethodError: javax.servlet.ServletContext.getVirtualServerName()Ljava/lang/String;
The following method did not exist:
javax.servlet.ServletContext.getVirtualServerName()Ljava/lang/String;
The method's class, javax.servlet.ServletContext, is available from the following locations:
jar:file:/css-web.jar!/BOOT-INF/lib/javax.servlet-3.0.0.v201112011016.jar!/javax/servlet/ServletContext.class
jar:file:/css-web.jar!/BOOT-INF/lib/servlet-api-2.4.jar!/javax/servlet/ServletContext.class
jar:file:/css-web.jar!/BOOT-INF/lib/servlet-api-2.5-6.1.14.jar!/javax/servlet/ServletContext.class
jar:file:/css-web.jar!/BOOT-INF/lib/tomcat-embed-core-9.0.21.jar!/javax/servlet/ServletContext.class
jar:file:/css-web.jar!/BOOT-INF/lib/javax.servlet-api-3.1.0.jar!/javax/servlet/ServletContext.class
It was loaded from the following location:
jar:file:/css-web.jar!/BOOT-INF/lib/javax.servlet-3.0.0.v201112011016.jar!/
上述是多版本 servlet-api
的jar报错,做法就是排除依赖
参考: https://www.cnblogs.com/lvbinbin2yujie/p/10726122.html
java.lang.ClassNotFoundException: org.apache.jsp.index_jsp
这个报错是依赖中的 jsp-api.jar
与tomcat中的冲突,排除依赖
java.lang.NoSuchMethodError: org.eclipse.jdt.internal.compiler.CompilationResult.getProblems()
同上,jasper-runtime
冲突
最终修改
<dependency>
<groupId>org.apache.hive</groupId>
<artifactId>hive-jdbc</artifactId>
<version>2.1.1</version>
<exclusions>
<exclusion>
<artifactId>servlet-api</artifactId>
<groupId>javax.servlet</groupId>
</exclusion>
<exclusion>
<artifactId>servlet-api-2.5</artifactId>
<groupId>org.mortbay.jetty</groupId>
</exclusion>
<exclusion>
<artifactId>javax.servlet</artifactId>
<groupId>org.eclipse.jetty.orbit</groupId>
</exclusion>
<exclusion>
<artifactId>geronimo-jaspic_1.0_spec</artifactId>
<groupId>org.apache.geronimo.specs</groupId>
</exclusion>
<exclusion>
<artifactId>jsp-api</artifactId>
<groupId>javax.servlet</groupId>
</exclusion>
<exclusion>
<artifactId>jsp-api</artifactId>
<groupId>javax.servlet.jsp</groupId>
</exclusion>
<exclusion>
<artifactId>jsp-2.1</artifactId>
<groupId>org.mortbay.jetty</groupId>
</exclusion>
<exclusion>
<artifactId>jsp-api-2.1</artifactId>
<groupId>org.mortbay.jetty</groupId>
</exclusion>
<exclusion>
<artifactId>jasper-compiler</artifactId>
<groupId>tomcat</groupId>
</exclusion>
<exclusion>
<artifactId>jasper-runtime</artifactId>
<groupId>tomcat</groupId>
</exclusion>
</exclusions>
</dependency>