将原来的项目挪到Maven后,启动正常,但跟Hive交互时报错:
严重: Servlet.service() for servlet [appServlet] in context with path [/paper] threw exception [Handler processing failed; nested exception is java.lang.NoClassDefFoundError: org/apache/hadoop/io/Writable] with root cause
java.lang.ClassNotFoundException: org.apache.hadoop.io.Writable
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1720)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1571)
at org.apache.hadoop.hive.jdbc.HiveStatement.executeQuery(HiveStatement.java:198)
at org.apache.hadoop.hive.jdbc.HiveStatement.execute(HiveStatement.java:132)
at org.apache.hadoop.hive.jdbc.HiveConnection.configureConnection(HiveConnection.java:132)
at org.apache.hadoop.hive.jdbc.HiveConnection.<init>(HiveConnection.java:122)
at org.apache.hadoop.hive.jdbc.HiveDriver.connect(HiveDriver.java:106)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
......
在配置文件pom.xml中加入代码片
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-common</artifactId>
<version>2.6.0</version>
<exclusions>
<exclusion>
<groupId>jdk.tools</groupId>
<artifactId>jdk.tools</artifactId>
</exclusion>
<exclusion>
<groupId>tomcat</groupId>
<artifactId>jasper-runtime</artifactId>
</exclusion>
<exclusion>
<groupId>tomcat</groupId>
<artifactId>jasper-compiler</artifactId>
</exclusion>
</exclusions>
</dependency>
本文详细介绍了在将项目从非Maven环境迁移到Maven后,遇到与Hive交互时报错'java.lang.NoClassDefFoundError'的解决方案。通过在pom.xml中添加特定依赖排除配置,成功解决了类找不到错误,确保了项目能够正常运行。
1256

被折叠的 条评论
为什么被折叠?



