5

私は通常、GAE+GWT プロジェクトに Eclipse IDE を使用します。

環境:GWT2.1.1、GAE1.4.0

GWTプロジェクト(GAEなし)で、プロジェクト内でGWTTestCaseを使って、、、 →問題ありません。よく走る。

GWT+GAE Projectで、GWT用のプロジェクトでGWTTestCaseを使って、、、 →GWTTestcaseを拡張したテストを実行するとエラーになる。

エラーは以下の通りです: java.lang.NoSuchMethodError: org.mortbay.thread.Timeout.(Ljava/lang/Object;)V at org.mortbay.io.nio.SelectorManager$SelectSet.(SelectorManager.java:306) at org 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) at junit.framework.TestCase.runBare(TestCase.java:134) junit.framework.TestResult$1.protect(TestResult.java:110) at 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.org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) の JUnit4TestReference.run(JUnit4TestReference.java:49) 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) で

テストのソースは次のとおりです。 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 がなければ正常に動作します。

4

2 に答える 2

13

パッケージを削除する必要はありません。ビルドパスでGWTjarがappenginejarの前に参照されていることを確認してください。

于 2011-03-16T10:37:56.360 に答える
1

返信が遅くなり申し訳ありませんが、私はちょうどこの問題を自分で抱えていました。

ClassPath が競合しています。

org.mortbay パッケージは、GWT ライブラリと Appengine ライブラリの両方に含まれています。

GWT ライブラリから引き続き利用できるように、Appengine ライブラリのコピーからそれらを削除しました。今はすべて問題ないようです。

よろしくお願いします

ジェフ・ブルックナー

于 2011-02-15T00:44:53.463 に答える