che*_*kaf 2 java guava jboss6.x
我正在尝试将Guava用于我的项目,并且在启动JBoss时有很多警告:
WARN [ClassLoaderManager] Unexpected error during load of:com.google.common.base.Equivalences$Equals: java.lang.IncompatibleClassChangeError: class com.google.common.base.Equivalences$Equals has interface com.google.common.base.Equivalence as super class
WARN [ClassLoaderManager] Unexpected error during load of:com.google.common.base.FunctionalEquivalence: java.lang.IncompatibleClassChangeError: class com.google.common.base.FunctionalEquivalence has interface com.google.common.base.Equivalence as super class
WARN [ClassLoaderManager] Unexpected error during load of:com.google.common.collect.AbstractMapBasedMultiset$1$1: java.lang.IllegalAccessError: class com.google.common.collect.AbstractMapBasedMultiset$1$1 cannot access its superclass com.google.common.collect.Multisets$AbstractEntry
[...]
Run Code Online (Sandbox Code Playgroud)
根据我的研究,似乎与旧的Google Collection不兼容.来自community.jboss.org的这个帖子建议使用jboss-scanning.xml.我没有更改,JBoss文档指定此文件用于过滤注释...
你有没遇到过这个问题?
你能建议一个解决方案吗?
你是对的,谷歌收藏和番石榴是不兼容的,并在谷歌收藏主页上说得很清楚:
Guava是旧版Google Collections Library的完全兼容的超集.它还包括多年的错误修复,文档修复和性能修复,因此我们强烈建议您使用Guava而不是Google Collections.
如果您的应用程序最终同时使用google-collect-1.0.jar和guava-r ##.jar在同一个类路径上,只需删除Google Collections JAR就可以了.如果你不删除它,它将导致可怕的问题(如果它出现在类路径中的番石榴之前)或者甚至永远都不会被看到(如果它之后).
所以基本上:要么从类路径中删除google集合,要么首先加载guava.
归档时间: |
|
查看次数: |
1225 次 |
最近记录: |