在NetBeans6.9上使用StrutsTestCase的ClassFormatError

时间:2011-06-06 13:52:21

标签: java unit-testing java-ee struts netbeans-6.9

我正在尝试使用StrutsTestCase在我的Java应用程序上使用Struts 1.3.8框架进行单元测试。但是,当我编写测试类并尝试运行它时,会出现错误,这令人非常沮丧。错误信息如下。

当我打开HttpServletRequestWrapper类时,我很困惑,构造方法下面有一条红线。我使用Java-EE-glassfish-v3作为lib,当我将其更改为Java EE 6时,条件仍然相同。

我使用Struts 1.3.8和StrutsTestCase 2.1.4,我的IDE是NetBeans 6.9,操作系统是Fedora 14(Java jdk是OpenJDK)。我没弄弄出为什么会发生这种错误。如果有人能给我任何帮助,我将非常感激。

这是NetBeans中的错误消息:

  

方法中的Absent Code属性   在课堂上不是原生的或抽象的   文件   的javax / servlet的/ HTTP /了HttpServletRequestWrapper   java.lang.ClassFormatError:缺席   方法中的代码属性不是   类文件中的本机或抽象   的javax / servlet的/ HTTP /了HttpServletRequestWrapper           at java.lang.ClassLoader.defineClass1(Native   方法)           at java.lang.ClassLoader.defineClass(ClassLoader.java:634)           at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)           at java.net.URLClassLoader.defineClass(URLClassLoader.java:277)           at java.net.URLClassLoader.access $ 000(URLClassLoader.java:73)           在java.net.URLClassLoader $ 1.run(URLClassLoader.java:212)           在java.security.AccessController.doPrivileged(Native   方法)           在java.net.URLClassLoader.findClass(URLClassLoader.java:205)           at java.lang.ClassLoader.loadClass(ClassLoader.java:321)           在sun.misc.Launcher $ AppClassLoader.loadClass(Launcher.java:294)           at java.lang.ClassLoader.loadClass(ClassLoader.java:266)           at java.lang.Class.forName0(Native   方法)           在java.lang.Class.forName(Class.java:186)

    at java.lang.ClassLoader.defineClass(ClassLoader.java:634)

我的谢意。

2 个答案:

答案 0 :(得分:0)

您是否定义了主要功能?
你可以试试这个:

public static void main(String[] args) {
    junit.textui.TestRunner.run(LoginActionTest.class);
}

希望这可以帮到你。

答案 1 :(得分:0)

看起来像版本mismatch.app j2ee版本,并且编写struts lib的版本应该是相同的。