java.lang.VerifyError: arguments are not type compatible (class: org/apache/commons/codec/binary/Base64InputStream method: <init>(Ljava/io/InputStream;Z)V) at pc: 11
[8/22/14 15:06:03:485 GMT+08:00] 0000011b SystemOut O 15:06:03,485 INFO common.Log4jPrint(20) - at java.lang.J9VMInternals.verifyImpl(Native Method)
[8/22/14 15:06:03:485 GMT+08:00] 0000011b SystemOut O 15:06:03,485 INFO common.Log4jPrint(20) - at java.lang.J9VMInternals.verify(J9VMInternals.java:69)
[8/22/14 15:06:03:485 GMT+08:00] 0000011b SystemOut O 15:06:03,485 INFO common.Log4jPrint(20) - at java.lang.J9VMInternals.initialize(J9VMInternals.java:131)
在was里面有出现这样的错误,本地运行无误。在网上找了些相关的说明,Base64InputStream用的jar包是commons-codec-1.6.jar。,求大神解惑~
------解决思路----------------------
看起来可能是依赖的类与自己的版本不匹配,通常是 API 版本差别的关系。
比如父类的构造方法,参数个数。
你这个程序是用 WAS 的 JRE 和 WebSphere Application Server 这个 J2EE Server Runtime 来开发的么?如果是的话,应该可以在编译时就检测出问题来的。我们在编程时推荐面向接口和 API 编程,尽量不要假定实现类一定是什么样的。