hadoop+javaWeb的开发中遇到包冲突问题(java.lang.VerifyError)

标签: hadoop java web
238人阅读 评论(0) 收藏 举报
分类:

原文地址:链接

1.HDFS + WEB 项目 报java.lang.VerifyError… 异常
抛异常:

Exception in thread “main” java.lang.VerifyError: (class: com/google/common/collect/Interners, method: newWeakInterner signature: ()Lcom/google/common/collect/Interner;) Incompatible argument to function

at org.apache.hadoop.util.StringInterner.<clinit>(StringInterner.java:48)

at org.apache.hadoop.conf.Configuration.loadResource(Configuration.java:2472)

at org.apache.hadoop.conf.Configuration.loadResources(Configuration.java:2364)

at org.apache.hadoop.conf.Configuration.getProps(Configuration.java:2281)

at org.apache.hadoop.conf.Configuration.get(Configuration.java:888)

at org.apache.hadoop.conf.Configuration.getTrimmed(Configuration.java:907)

at org.apache.hadoop.conf.Configuration.getBoolean(Configuration.java:1308)

at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:366)

冲突来自 Java_EE_6 中的weld-osgi-bundle.jar 和 guava-11.0.2.jar 这两个包。 com/google/common/collect/Interners 类是 HDFS在创建FileSystem时所需要使用的一个创建Interner类的工具类,但是 weld-osgi-bundle.jar和guava-11.0.2.jar 存在了一样的结构,而weld-osgi-bundle.jar中却不存在Interners类,导致在运行过程中的冲突。

解决方法一:

将web工程应用Java EE 5。笔者的项目使用Java EE 5已经足够了,如果你们的项目中有使用到Java EE 6的功能可以通过另外导入需要的工具实现。

解决方法二:

将Java EE 6 的包通过 ADD JARs… 的方式导入。

注意:不要将 Java EE 6中的包直接放到WebRoot/WEB-INF/lib 下,这样同样会导致包冲突

2.报异常java.lang.NoSuchMethodError: org.eclipse.jdt.internal.compiler.CompilationRe
java.lang.NoSuchMethodError: org.eclipse.jdt.internal.compiler.CompilationResult.getProblems()
这些都是:

Hadoop相关jar中依赖jetty、servlet等第三方jar包和当前项目中的有冲突,

1.如用的maven的话,在pom文件中排除这些jar包后,启动访问页面就正常了:

org.apache.hadoop
hadoop-common
${hadoop.version}


org.mortbay.jetty
jetty


org.mortbay.jetty
jetty-util


org.mortbay.jetty
jsp-2.1


org.mortbay.jetty
jsp-api-2.1


org.mortbay.jetty
servlet-api-2.1


javax.servlet
servlet-api


javax.servlet.jsp
jsp-api


tomcat
jasper-compiler


tomcat
jasper-runtime


2,如是您自己手工在lib加入的话,哪就要将这几个包去掉,目前我就是这样做的,可以用运行(有具体版本号,我没写,但是前面都一样)
jersey-server-1.9.jar
jasper-runtime-5.5.23.jar
jasper-compiler-5.5.23.jar
servlet-api.jar
jsp-api.jar
jetty-util.jar
jetty.jar

最后您还可用查看其它人的:
http://brandnewuser.iteye.com/blog/2208969
http://www.micmiu.com/exception/jee-hadoop-nosuchmethod-error-getproblems/

查看评论

SpringMvc+Mybatis整合hbase时出现的问题

Exception in thread "main" java.lang.NoSuchMethodError: com.google.common.collect.MapMaker.keyEquiva...
  • binlixia
  • binlixia
  • 2016-03-24 16:03:32
  • 3283

文本数据导入HBASE库找不到类com/google/common/collect/Multimap

文本数据导入HBASE库找不到类com/google/common/collect/Multimap  打算将文本文件导入HBASE库,在运行命令的时候找不到类com/goo...
  • anhuidelinger
  • anhuidelinger
  • 2013-12-15 21:00:14
  • 7366

import com.google.common.* 出错,找不到

问题:在打开NFCDemo时,import com.google.common.base.Charsets;import com.google.common.base.Preconditions;im...
  • anzhu_111
  • anzhu_111
  • 2011-07-19 14:45:29
  • 47044

js 开发进阶之 开发中容易遇到的问题

在开发android 的开发习惯,转向js 开发的时候,回遇到些代码习惯的问题,今天就遇到了一个问题需求场景 是当我门找到满足条件的信息 我门返回 true 没找到 返回 fasle ,对于一个写an...
  • ahubenkui
  • ahubenkui
  • 2017-06-12 23:21:38
  • 286

项目开发中遇到的问题及解决办法

1:hql模糊查询不匹配问题---->忘记了加%%模糊匹配符
  • yunfengfengfeng
  • yunfengfengfeng
  • 2017-09-02 14:32:44
  • 419

项目开发中遇到的问题汇总~持续更新

项目开发快进入尾声了,之前一直较忙,也由于没有遇到什么可以记载的问题,故此一直未整理,近期渐渐闲下来,会逐渐将这个项目在开发中遇到的问题汇总出来: 1. 集成蓝牙(佳博打印机)要在info里面进行如下...
  • shuidonglCH
  • shuidonglCH
  • 2016-10-05 11:43:03
  • 1943

最新api v4

  • 2015年12月15日 09:45
  • 841KB
  • 下载

unity 开发中遇到的各种问题,及其解决问题的出处

本人初学,所以在网上看了很多自己可能用到的东西,在此做一个记录,以便后续修改 http://blog.csdn.net/wangjun_huster/article/category/6905420 ...
  • qq_36459722
  • qq_36459722
  • 2017-06-14 11:17:51
  • 396

Vue开发中遇到的问题与解决方案(一)

vue生命周期函数:http://www.zhimengzhe.com/Javascriptjiaocheng/236707.html 1、在watch或者created里面操作dom,用this....
  • github_37516320
  • github_37516320
  • 2018-01-03 16:55:48
  • 600

js 开发遇到的问题

在开发中 常常遇到 一些变量在debug 提示undefine 的问题,现在开发中遇到绑定不一致具体场景 //点评列表 fetchCommentList() { let se...
  • ahubenkui
  • ahubenkui
  • 2017-05-25 00:08:51
  • 223
    个人资料
    等级:
    访问量: 621
    积分: 19
    排名: 221万+
    文章分类
    文章存档