java.lang.NoSuchMethodError: org.apache.commons.codec.binary.Base64.encode([BII)V
at org.apache.commons.codec.binary.Base64OutputStream.write(Base64OutputStream.java:140)
at java.io.ObjectOutputStream$BlockDataOutputStream.drain(ObjectOutputStream.java:1838)
at java.io.ObjectOutputStream$BlockDataOutputStream.setBlockDataMode(ObjectOutputStream.java:1747)
at java.io.ObjectOutputStream.<init>(ObjectOutputStream.java:226)
On Jan 28, 2:39 am, iJay <mustan...@gmail.com> wrote:
> 大家好
>
> 今天下午在重构一个项目的时候遇到了一个很奇怪的问题。之前该项目使用的是我们找到的一个fast base64方法,这次重构改为使用commons
> codec作为替代。重构后在tomcat 6,glassfish 2下没有问题,但部署到3后,抛出一下异常:
>
> java.lang.NoSuchMethodError:
>
> > org.apache.commons.codec.binary.Base64.encode([BII)V
> > at
> > org.apache.commons.codec.binary.Base64OutputStream.write(Base64OutputStream.java:140)
> > at
> > java.io.ObjectOutputStream$BlockDataOutputStream.drain(ObjectOutputStream.java:1838)
> > at
> > java.io.ObjectOutputStream$BlockDataOutputStream.setBlockDataMode(ObjectOutputStream.java:1747)
> > at java.io.ObjectOutputStream.<init>(ObjectOutputStream.java:226)
>
> 找了一下,发现在modules目录下有个commons-codec-repackaged.jar,把这个文件用apache提供的commons
> codec替换,问题解决。这里有个问题:
>
> 为什么要对codec做repackage?对比了一下内容发现repackaged少了几个类。为什么要去掉这几个类?
>
> 有dev team的人能给出解释么?没有的话我去提bug了
>
> --
> 徐佳晶 @ 北京英智兴达信息技术有限公司
>
> 地址:北京市海淀区花园路4号通恒大厦408室
> 电话:86-10-62385098(804)
> 传真:86-10-62385098(801)
> 电邮 / GTalk(工作):xujiaj...@yingzhitech.com
> 电邮 / GTalk(私人):mustan...@gmail.com