invalid LOC header (bad signature)
  原来是因为依赖问题,直接依赖“hive-server”的见解依赖jetty-all有冲突;诡异的是在main方法中执行是OK的,但是放到web工程里面就有问题;推测原因是web工程的tomcat的jar包和hive-server的依赖包有冲突。
解决流程:
  1. 因为新加入了两个依赖,hive-jdbc以及hadoop-common;分别注释,定位hive-jdbc有问题;
  2. 将hive-jdbc所有的依赖进行exclude(在eclispse中的pom编辑工具里面右键做即可);执行,OK;由此判断一定是hive-jdbc的依赖有问题;
  3. 然后来到pom的文本格式模式;逐个增量的去掉exclude项;直到发现有问题的项(可能不止一个),全部撸一边,哪些项就是需要排除就像退潮后的裸泳一样明显了;
  注意:采用eclipse的pom工具进行可视化exclude某个组件的时候,不是仅仅exclude某个依赖,而是所有的依赖都会被删掉,比如我把hive-server的org.log4j给exclude,那么所有的依赖该组件的依赖都会添加上exclude org.log4j,所以要小心执行这个动作;最好先提交再处理,有问题可以及时回滚。
  后来JSP编译也报错了;同样的原因,将hdfs-common里面的servlet-api进行排除即可。这是因为servlet-api已经由容器(tomcat,JBoss等)提供;所以不需要。如果添加上了,反而会在容器中运行的时候发生异常。所以需要进行排除。这个也是为什么MainTest里面运行没问题,但是放到了Web里面则有问题的原因。
  注意,我刚才犯了一个非常低级的错误,就是在排除的时候,直接添加<exclution>节点,但是其实是应该添加<exclusions><exclusion>...</exclusion></exclusions>。
其实我只需要hadoop-common这个包,不需要其他依赖;于是(通过“*”来排除所有的依赖):

        <dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-common</artifactId>
<version>2.6.0</version>
<exclusions>
<exclusion>
<groupId>*</groupId>
<artifactId>*</artifactId>
</exclusion>
</exclusions>
</dependency>

  maven工程有一个地方不太好,每次改pom配置文件,工程重新加载,都会从新写org.eclipse.wst.common.component文件,结果导致配置的Deployment Assembly内容丢失。

Hive的JDBC访问引发的Maven依赖的实践的更多相关文章

  1. Hive的JDBC访问

    实现hive查询源码: String driverName = "org.apache.hive.jdbc.HiveDriver"; try { Class.forName(dri ...

  2. maven 依赖、聚合和继承 (转)

    Maven 插件和仓库 Maven 本质上是一个插件框架,它的核心并不执行任何具体的构建任务,仅仅定义了抽象的生命周期,所有这些任务都交给插件来完成的.每个插件都能完成至少一个任务,每个任务即是一个功 ...

  3. 160929、各数据库连接配置与maven依赖安装

    最近做的项目都是maven的,据说maven是个东西.把依赖的jar文件的事情都委托出去辣!试着用了一下哈,效果还可以! 今天做了数据库配置这一块,特意把相关的东西总结出来,以备不时之需. MySQL ...

  4. Maven依赖(转)

    相同依赖级别,先加入的先依赖不同依赖级别,级别短的先依赖 version-->SNAPSHOTxxx-里程碑-->SNAPSHOT,alpha,beta,Release(RC),GA()s ...

  5. Hive的JDBC使用&并把JDBC放置后台运行

    使用JDBC访问HIVE: 首先启动hive的JDBC服务. 进入hive的bin目录: 这样启动是启动到前台.如果 要想启动到后台需要用到Linux的相关命令. 我们先把其放到前台看下效果,之后再把 ...

  6. Spring Security 3.2.x与Spring 4.0.x的Maven依赖管理

    原文链接: Spring Security with Maven原文日期: 2013年04月24日翻译日期: 2014年06月29日翻译人员: 铁锚 1. 概述 本文通过实例为您介绍怎样使用 Mave ...

  7. Maven依赖解析

    本文将记录Maven工程中依赖解析机制,内容包括: Maven依赖基本结构 从仓库解析依赖的机制 依赖传递性解析实例 1. Maven依赖基本结构 上篇文章记录了Maven依赖的聚合与继承,POM中依 ...

  8. Java开发小技巧(二):自定义Maven依赖

    前言 我们在项目开发中经常会将一些通用的类.方法等内容进行打包,打造成我们自己的开发工具包,作为各个项目的依赖来使用. 一般的做法是将项目导出成Jar包,然后在其它项目中将其导入,看起来很轻松,但是存 ...

  9. Java-Maven(七):Eclipse中Maven依赖、聚合、继承特性

    之前通过学习了解,maven集成到eclipse中的如何创建项目,以及maven命令插件在eclipse中安装后的用法.那么接下来我们将会学习一些maven在项目中的一些特性,及如何使用. Maven ...

随机推荐

  1. 80211N、80211AC建链速率值(对应MCS)

    转:http://www.docin.com/p-1713976102.html?docfrom=rrela 注:各种技术对速率提升的贡献各项技术对提高传输速率的贡献如下:子载波数目增加: 802.1 ...

  2. MATLAB更换字体后 中文显示乱码问题

    MATLAB的脚本代码默认宋体显示,对于大多数720P的显示器来说,无论是中文还是英文,显示效果都非常差.Windows环境下,Consolas是一种比较理想的英文代码字体. Consolas 字体是 ...

  3. 源代码中直接package edu.princeton.cs.algs4还是import edu.princeton.cs.algs4问题

    对于前者这个问题,直接在src目录下命名一个包:edu.princeton.cs.algs4 即创建了文件:src->edu->princeton->cs->algs4,然后把 ...

  4. Django 模板标签[转]

    Django 模板标签if/else 标签 基本语法格式如下: {% if condition %}     ... display{% endif %} 或者: {% if condition1 % ...

  5. java转义符的一些用法

    那么这里在列上一些转义字符 \\ 反斜杠 \t 间隔 ('\u0009')\n 换行 ('\u000A')\r 回车 ('\u000D')\d 数字 等价于 [0-9]\D 非数字 等价于 [^0-9 ...

  6. 如何开启和禁止Linux系统的ping功能

    在日常的网络维护和使用过程中,ping命令是最为常用的一个检测命令,它所使用的是ICMP协议,但是为了保护主机,很多时候我们需要禁止ICMP协议,在这种情况下,终端再使用ping命令检测,服务器是不会 ...

  7. mysql中两表更新时产生的奇葩问题,产生死锁!

    如下一个两表更新语句 UPDATE hzxm201610 a,xmhzylb1201610 b SET a.gk07_1_6=b.gk04_11,a.gk07_2_6=b.f06_1,a.gk07_3 ...

  8. easyui,datagrid 分页,跨域访问数据

    http://blog.itpub.net/30980622/viewspace-2051035/ 思路: 1.通过配置属性,loader加载跨域资源 2.获得$(pager).pagination对 ...

  9. Mybatis单个参数的if判断(针对异常:There is no getter for property..)------mybatis的内置对象

    这里有一个删除方法: int deleteByPrimaryKey(Integer id); 然后对应的sql的xml如下: <delete id="deleteByPrimaryKe ...

  10. DanceLink

    DanceLink是一个可以解决精确覆盖和重复覆盖的搜索算法 重复覆盖就是在精确覆盖的remove等处做改变 都是十字循环链表 精确覆盖 给出一个01矩阵 要求选择几行 使每一列都有且仅有一个1 在求 ...