5

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

环境:GWT2.1.1,GAE 1.4.0

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

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

错误如下: java.lang.NoSuchMethodError: org.mortbay.thread.Timeout.(Ljava/lang/Object;)V at org.mortbay.io.nio.SelectorManager$SelectSet.(SelectorManager.java:306) at org. mortbay.io.nio.SelectorManager.doStart(SelectorManager.java:223) at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:39) at 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(JettyLauncher.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) at junit.framework.TestSuite.runTest(TestSuite.java:232) at junit.framework.TestSuite.run(TestSuite.java:227) at 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)683) 在 org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390) 在 org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)683) 在 org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390) 在 org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)

测试来源如下:包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,它将正常运行。

4

2 回答 2

13

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

于 2011-03-16T10:37:56.360 回答
1

抱歉回复晚了,但我自己只是遇到了这个问题。

你有一个 ClassPath 冲突。

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

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

最好的祝福

杰夫布鲁克纳

于 2011-02-15T00:44:53.463 回答