我正在尝试使用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)
我的谢意。
答案 0 :(得分:0)
您是否定义了主要功能?
你可以试试这个:
public static void main(String[] args) {
junit.textui.TestRunner.run(LoginActionTest.class);
}
希望这可以帮到你。
答案 1 :(得分:0)
看起来像版本mismatch.app j2ee版本,并且编写struts lib的版本应该是相同的。