相关文章推荐
冷冷的酱肘子  ·  JS ...·  10 月前    · 
登录

java.lang.ClassFormatError:当尝试使用Mockito来模拟HttpServletRequest时

内容来源于 Stack Overflow,遵循 CC BY-SA 4.0 许可协议进行翻译与使用。IT领域专用引擎提供翻译支持

腾讯云小微IT领域专用引擎提供翻译支持

原文
Stack Overflow用户 修改于2013-01-30
  • 该问题已被编辑
  • 提问者: Stack Overflow用户
  • 提问时间: 2013-01-30 22:24

我正在Eclipse中运行一些单元测试,并使用Mockito模拟如下:

    HttpServletRequest mockRequest = mock(HttpServletRequest.class);

当我在Eclipse中从 运行测试时,我得到以下堆栈跟踪

java.lang.ClassFormatError: Absent Code attribute in method that is not native or abstract in class file javax/servlet/ServletException
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)

但是,当使用maven从命令行运行时,我不会收到任何这样的错误。

我在其他地方看到过类似的问题,我确保我有实现jars,而不仅仅是API jars。我的maven依赖项如下

    <dependency>
        <groupId>org.glassfish</groupId>
        <artifactId>javax.servlet</artifactId>
        <version>10.0-b28</version>