GWT + GAE错误:通过运行GWTTestCase-JUnit失败org.mortbay.jetty.nio.SelectChannelConnector

时间:2011-01-25 06:56:03

标签: gwt gae-eclipse-plugin

我通常将Eclipse IDE用于GAE + GWT项目。

环境:GWT2.1.1,GAE 1.4.0

在GWT项目(没有GAE)中,在项目中使用GWTTestCase ,,, →没问题。运行良好。

在GWT + GAE项目中,在GWT项目中使用GWTTestCase ,,, →运行扩展GWTTestcase的测试时, 错误来了。

错误如下:     java.lang.NoSuchMethodError:org.mortbay.thread.Timeout。(Ljava / lang / Object;)V     at org.mortbay.io.nio.SelectorManager $ SelectSet。(SelectorManager.java:306)     在org.mortbay.io.nio.SelectorManager.doStart(SelectorManager.java:223)     在org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:39)     在org.mortbay.jetty.nio.SelectChannelConnector.doStart(SelectChannelConnector.java:303)     在org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:39)     在org.mortbay.jetty.Server.doStart(Server.java:233)     在org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:39)     在com.google.gwt.dev.shell.jetty.JettyLauncher.start(DettyLauncher.java:542)     在com.google.gwt.dev.DevMode.doStartUpServer(DevMode.java:431)     在com.google.gwt.dev.DevModeBase.startUp(DevModeBase.java:1053)     在com.google.gwt.junit.JUnitShell.getUnitTestShell(JUnitShell.java:680)     在com.google.gwt.junit.JUnitShell.runTest(JUnitShell.java:625)     在com.google.gwt.junit.client.GWTTestCase.runTest(GWTTestCase.java:456)     在junit.framework.TestCase.runBare(TestCase.java:134)     在junit.framework.TestResult $ 1.protect(TestResult.java:110)     在junit.framework.TestResult.runProtected(TestResult.java:128)     在junit.framework.TestResult.run(TestResult.java:113)     在junit.framework.TestCase.run(TestCase.java:124)     在com.google.gwt.junit.client.GWTTestCase.run(GWTTestCase.java:311)     在junit.framework.TestSuite.runTest(TestSuite.java:232)     在junit.framework.TestSuite.run(TestSuite.java:227)     在org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:83)     在org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:49)     在org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)     在org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)     在org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)     在org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)     在org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)

测试来源如下:     package com.companyName.client;

import com.google.gwt.junit.client.GWTTestCase;

public class Test extends GWTTestCase {


@Override
public String getModuleName() {
    return "com.companyName.projectName";
}


/**
 * test
 */
public void testNumburOne () {
    System.out.println("testNumburOne");
}

}

没有GAE,将正常运行。

2 个答案:

答案 0 :(得分:13)

无需移除包裹。只需确保在构建路径中的appengine jar之前引用GWT jar。

答案 1 :(得分:1)

对于迟到的回复感到抱歉,但我自己只是遇到了这个问题。

您遇到ClassPath冲突。

org.mortbay包包含在GWT和Appengine库中。

我刚刚从我的Appengine库副本中删除它们 - 这样它们仍然可以从GWT库中获得。现在一切似乎都没问题。

BestRegards

杰夫布鲁克纳