weblogic 12c下使用hadoop时jar包冲突的两个问题的解决办法

本文详细介绍了在使用Hadoop时遇到的jar包冲突问题,尤其是当WebLogic使用了较低版本的guava jar包时,如何通过在WEB-INF下增加weblogic.xml文件来解决冲突。同时,文中还提到了如何解决webservice包冲突,通过替换saaj-impl.jar为geronimo-webservices-2.1.4.jar来避免版本不匹配导致的问题。

1. 在使用hadoop时,出现jar包冲突,因为weblogic也使用guava的jar,但版本太低,报错信息如下:

Caused by: java.lang.NoSuchMethodError: com.google.common.util.concurrent.MoreExecutors.sameThreadExecutor()Lcom/google/common/util/concurrent/ListeningExecutorService;
at com.google.common.cache.LocalCache.(LocalCache.java:160)
at com.google.common.cache.LocalCache$LocalManualCache.(LocalCache.java:4718)
at com.google.common.cache.CacheBuilder.build(CacheBuilder.java:807)
at org.apache.hadoop.hdfs.DomainSocketFactory.(DomainSocketFactory.java:45)
at org.apache.hadoop.hdfs.DFSClient.(DFSClient.java:517)
at org.apache.hadoop.hdfs.DFSClient.(DFSClient.java:453)
at org.apache.hadoop.hdfs.DistributedFileSystem.initialize(DistributedFileSystem.java:136)
at org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:2433)

解决办法,在WEB-INF下增加一个weblogic.xml文件,添加如下内容,使weblogic默认使用工程内的jar包:

<?xml version="1.0" encoding="UTF-8"?>
<wls:weblogic-web-app
xmlns:wls="http://xmlns.oracle.com/weblogic/weblogic-web-app"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd
http://xmlns.oracle.com/weblogic/weblogic-web-app
http://xmlns.oracle.com/weblogic/weblogic-web-app/1.4/weblogic-web-app.xsd">

     <wls:container-descriptor>
         <wls:prefer-application-packages>
             <wls:package-name>com.google.common.*</wls:package-name>
         </wls:prefer-application-packages>
     </wls:container-descriptor>
</wls:weblogic-web-app>
2.web services包冲突

com.sun.xml.messaging.saaj.soap.LocalStrings != com.sun.xml.internal.messaging.saaj.soap.LocalStrings

解决方法:

删掉saaj-impl.jar   换成了。geronimo-webservices-2.1.4.jar




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值