我通常将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,将正常运行。
答案 0 :(得分:13)
无需移除包裹。只需确保在构建路径中的appengine jar之前引用GWT jar。
答案 1 :(得分:1)
对于迟到的回复感到抱歉,但我自己只是遇到了这个问题。
您遇到ClassPath冲突。
org.mortbay包包含在GWT和Appengine库中。
我刚刚从我的Appengine库副本中删除它们 - 这样它们仍然可以从GWT库中获得。现在一切似乎都没问题。
BestRegards
杰夫布鲁克纳