問題: gwt -maven-pluginmvn install
でビルドした GWT 2.5.0 プロジェクトを実行すると、エラーが発生します。Rebind result 'c3gw.fwk.gui.client.ClientFactory' must be a class
これは私の pom.xml のスニペットです:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>gwt-maven-plugin</artifactId>
<version>2.5.0</version>
<executions>
<execution>
<goals>
<goal>compile</goal>
<goal>test</goal>
<goal>i18n</goal>
<goal>resources</goal>
<goal>generateAsync</goal>
</goals>
</execution>
</executions>
<configuration>
<runTarget>C3gwGui.html</runTarget>
<hostedWebapp>${webappDirectory}</hostedWebapp>
<i18nMessagesBundle>c3gw.fwk.gui.client.Messages</i18nMessagesBundle>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.1.1</version>
<executions>
<execution>
<phase>compile</phase>
<goals>
<goal>exploded</goal>
</goals>
</execution>
</executions>
<configuration>
<webappDirectory>${webappDirectory}</webappDirectory>
</configuration>
</plugin>
これは私の C3gwGui.gwt.xml のスニペットです:
<replace-with class="c3gw.fwk.gui.client.ClientFactoryImpl">
<when-type-is class="c3gw.fwk.gui.client.ClientFactory" />
</replace-with>
これは、エラーがスローされる行のスニペットです。
public void onModuleLoad() {
ClientFactory clientFactory = GWT.create(ClientFactory.class);
...
}
ClientFactory はインターフェースであり、ClientFactoryImpl はインターフェースを実装します。
これまでにわかったこと:コードは、デバッグを実行すると Eclipse で完全に機能しますが、mvn install を実行すると機能しません。gwt-maven-plugin で利用可能なすべての目標 (クリーン、コンパイル、ソースなど) を実行しましたが、それらはすべて機能するため、この時点で得られる唯一の結論は、maven-war 中に何かが起こっているということです。 -plugin フェーズまたはそれ以降。
また、次のGoogleチュートリアルからこのコードの基本を取得しました。サンプルプロジェクトも機能すると仮定すると、インターフェイスを使用するため、機能するはずです。