2017-05-03 4 views
2

Eclipse GWTプラグインを使用してサンプルGWT Webアプリケーションを作成しました。GWT:既存のWebアプリケーションまたはスタンドアロンエンティティとして新しいGWTモジュールを作成する

しかし、私は

右クリックして、私のWebアプリケーションプロジェクト、 新規作成]を選択
    1. 、で新しいモジュールを追加してみてください|その他... | GWTクラス|モジュールオプション。そして
    2. ボタンをクリックすると、ウィザードに

    何も起こりません - ウィザードは、同じページ上に残り続けて!

    私は自分の作業用Webアプリケーションのパッケージ/ディレクトリ構造をコピーして手動でNewModule.gwt.xmlとその内容を適切に変更しました。また、Javaクラス名を適切に変更し、Eclipseプロジェクトをリフレッシュしました。今

    しかし、私は(右Eclipseでプロジェクトをクリックすることで)プロジェクトにGWTコンパイルを実行すると、それだけで完全に私が手動でファイル・システム上に作成された私のNewModuleモジュールを無視して、オリジナルのWebアプリケーションをコンパイルします。

    質問:

    1. 私が間違って何をしているのですか?

    2. 既存のWebアプリケーションで新しいモジュール作成のプロセスを容易にするコマンドラインメソッドがありますか、それともスタンドアロンエンティティとして作成するのが理想的ですか?

    私はUbuntu 16.04でEclipse NeonでGWT 2.8.0を使用しています。上記と同じ動作でGWT 2.7.0も試してみました。

  • 答えて

    1

    これを再現できます。ありがたいことにイベントが私たちにいくつかのアイデアを与えるだろうどのログに記録されます。新しい/興味深いものが私の場合にはその.bak_0.logではありません

    Session Data: 
    
    eclipse.buildId=4.6.1.M20160907-1200 
    java.version=1.8.0_112 
    java.vendor=Oracle Corporation 
    BootLoader constants: OS=linux, ARCH=x86_64, WS=gtk, NL=en_US 
    Framework arguments: -product org.eclipse.epp.package.jee.product --launcher.GTK_version 2 
    Command-line arguments: -os linux -ws gtk -arch x86_64 -product org.eclipse.epp.package.jee.product --launcher.GTK_version 2 
    
    This is a continuation of log file /home/user/workspace/.metadata/.bak_0.log 
    Created Time: 2017-05-02 11:19:21.409 
    

    Plug-in: org.eclipse.ui 
    Serverity: Error 
    Message: Unhandled event loop exception 
    
    java.lang.ClassCastException: org.eclipse.jdt.internal.core.JarEntryFile cannot be cast to org.eclipse.core.resources.IFile 
        at com.google.gwt.eclipse.core.modules.AbstractModule.getShortName(AbstractModule.java:294) 
        at com.google.gwt.eclipse.core.modules.AbstractModule.getQualifiedName(AbstractModule.java:272) 
        at com.google.gwt.eclipse.core.modules.ModuleJarResource.getQualifiedName(ModuleJarResource.java:1) 
        at com.google.gwt.eclipse.core.modules.AbstractModule.getSimpleName(AbstractModule.java:342) 
        at com.google.gwt.eclipse.core.modules.ModuleJarResource.getSimpleName(ModuleJarResource.java:1) 
        at com.google.gwt.eclipse.core.modules.ModuleUtils$3.visit(ModuleUtils.java:220) 
        at com.google.gwt.eclipse.core.modules.ModuleUtils$3.visit(ModuleUtils.java:1) 
        at com.google.gwt.eclipse.core.modules.ModuleUtils.visitFragments(ModuleUtils.java:338) 
        at com.google.gwt.eclipse.core.modules.ModuleUtils.findModule(ModuleUtils.java:212) 
        at com.google.gwt.eclipse.core.wizards.NewModuleWizardPage.addCommonGWTModulesAsDefaultInherits(NewModuleWizardPage.java:367) 
        at com.google.gwt.eclipse.core.wizards.NewModuleWizardPage.moduleContainerChanged(NewModuleWizardPage.java:496) 
        at com.google.gwt.eclipse.core.wizards.NewModuleWizardPage.doFieldChange(NewModuleWizardPage.java:291) 
        at com.google.gwt.eclipse.core.wizards.NewModuleWizardPage.handleFieldChanged(NewModuleWizardPage.java:322) 
        at org.eclipse.jdt.ui.wizards.NewContainerWizardPage.containerDialogFieldChanged(NewContainerWizardPage.java:319) 
        at org.eclipse.jdt.ui.wizards.NewContainerWizardPage.access$1(NewContainerWizardPage.java:314) 
        at org.eclipse.jdt.ui.wizards.NewContainerWizardPage$ContainerFieldAdapter.dialogFieldChanged(NewContainerWizardPage.java:300) 
        at org.eclipse.jdt.internal.ui.wizards.dialogfields.DialogField.dialogFieldChanged(DialogField.java:75) 
        at org.eclipse.jdt.internal.ui.wizards.dialogfields.StringDialogField.setText(StringDialogField.java:180) 
        at org.eclipse.jdt.ui.wizards.NewContainerWizardPage.setPackageFragmentRoot(NewContainerWizardPage.java:470) 
        at org.eclipse.jdt.ui.wizards.NewContainerWizardPage.initContainerPage(NewContainerWizardPage.java:163) 
        at com.google.gwt.eclipse.core.wizards.NewModuleWizardPage.initModulePage(NewModuleWizardPage.java:328) 
        at com.google.gwt.eclipse.core.wizards.NewModuleWizard.addPages(NewModuleWizard.java:55) 
        at org.eclipse.jface.wizard.WizardSelectionPage.getNextPage(WizardSelectionPage.java:116) 
        at org.eclipse.ui.internal.dialogs.WorkbenchWizardSelectionPage.getNextPage(WorkbenchWizardSelectionPage.java:98) 
        at org.eclipse.jface.wizard.WizardDialog.nextPressed(WizardDialog.java:869) 
        at org.eclipse.jface.wizard.WizardDialog.buttonPressed(WizardDialog.java:419) 
        at org.eclipse.jface.dialogs.Dialog$2.widgetSelected(Dialog.java:618) 
        at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:249) 
        at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) 
        at org.eclipse.swt.widgets.Display.sendEvent(Display.java:5219) 
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1340) 
        at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4553) 
        at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:4143) 
        at org.eclipse.jface.window.Window.runEventLoop(Window.java:818) 
        at org.eclipse.jface.window.Window.open(Window.java:794) 
        at org.eclipse.ui.internal.handlers.WizardHandler$New.executeHandler(WizardHandler.java:269) 
        at org.eclipse.ui.internal.handlers.WizardHandler.execute(WizardHandler.java:290) 
        at org.eclipse.ui.internal.handlers.HandlerProxy.execute(HandlerProxy.java:295) 
        at org.eclipse.ui.internal.handlers.E4HandlerProxy.execute(E4HandlerProxy.java:90) 
        at sun.reflect.GeneratedMethodAccessor75.invoke(Unknown Source) 
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
        at java.lang.reflect.Method.invoke(Method.java:498) 
        at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:55) 
        at org.eclipse.e4.core.internal.di.InjectorImpl.invokeUsingClass(InjectorImpl.java:282) 
        at org.eclipse.e4.core.internal.di.InjectorImpl.invoke(InjectorImpl.java:264) 
        at org.eclipse.e4.core.contexts.ContextInjectionFactory.invoke(ContextInjectionFactory.java:132) 
        at org.eclipse.e4.core.commands.internal.HandlerServiceHandler.execute(HandlerServiceHandler.java:152) 
        at org.eclipse.core.commands.Command.executeWithChecks(Command.java:494) 
        at org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(ParameterizedCommand.java:488) 
        at org.eclipse.e4.core.commands.internal.HandlerServiceImpl.executeHandler(HandlerServiceImpl.java:210) 
        at org.eclipse.ui.internal.handlers.LegacyHandlerService.executeCommand(LegacyHandlerService.java:353) 
        at org.eclipse.ui.internal.actions.CommandAction.runWithEvent(CommandAction.java:155) 
        at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:565) 
        at org.eclipse.jface.action.ActionContributionItem.lambda$4(ActionContributionItem.java:397) 
        at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) 
        at org.eclipse.swt.widgets.Display.sendEvent(Display.java:5219) 
        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1340) 
        at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4553) 
        at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:4143) 
        at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$4.run(PartRenderingEngine.java:1121) 
        at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336) 
        at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1022) 
        at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:150) 
        at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:687) 
        at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336) 
        at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:604) 
        at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:148) 
        at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:138) 
        at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) 
        at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134) 
        at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104) 
        at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:388) 
        at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:243) 
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
        at java.lang.reflect.Method.invoke(Method.java:498) 
        at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:673) 
        at org.eclipse.equinox.launcher.Main.basicRun(Main.java:610) 
        at org.eclipse.equinox.launcher.Main.run(Main.java:1519) 
        at org.eclipse.equinox.launcher.Main.main(Main.java:1492) 
    

    が続きます。 Eclipseに報告しました。とgwt-eclipse-plugin

    と編集しました。もちろん、あなたの本当の質問には答えることができません。

    編集2:

    手動であなたのモジュールを追加しましたので、私はIDEとの統合はそれについて知っていないと仮定するつもりです。プロジェクトを右クリックし、GWTに移動し、コンパイルする代わりに折りたたみから設定を選択します。新しいモジュールがダイアログに表示されていますか?そうでない場合は、それを追加して、GWT Compileが機能するかどうかを確認してください。

    コマンドラインについては、webAppCreator documentationを参照してください。

    編集3:

    さて、あなたの行動を再現することはできません。デモコードをもう一度やり直して、同じプロジェクトに2つのモジュールがあるようにコピーを作成しました。彼らはお互いから何かを継承しません - スクラッチ参照スクラッチ/スクラッチ2参照スクラッチ2。私は2番目のモジュールを参照する別のhtmlファイルを作成しませんでした。だからここに私の設定です:それは(多少それを疑う)適切かどう

    ./src/scratch/server/GreetingServiceImpl.java 
    ./src/scratch/shared/FieldVerifier.java 
    ./src/scratch/client/Scratch_gwt.java 
    ./src/scratch/client/GreetingService.java 
    ./src/scratch/client/GreetingServiceAsync.java 
    ./src/scratch/Scratch_gwt.gwt.xml 
    
    ./src/scratch2/server/GreetingService2Impl.java 
    ./src/scratch2/shared/FieldVerifier2.java 
    ./src/scratch2/client/GreetingService2Async.java 
    ./src/scratch2/client/Scratch2_gwt.java 
    ./src/scratch2/client/GreetingService2.java 
    ./src/scratch2/Scratch2_gwt.gwt.xml 
    

    私は知らないが、私はまた私のweb.xmlを修正:

    <servlet> 
        <servlet-name>greetServlet</servlet-name> 
        <servlet-class>scratch.server.GreetingServiceImpl</servlet-class> 
        </servlet> 
        <servlet> 
        <servlet-name>greetServlet2</servlet-name> 
        <servlet-class>scratch2.server.GreetingService2Impl</servlet-class> 
        </servlet> 
    
        <servlet-mapping> 
        <servlet-name>greetServlet</servlet-name> 
        <url-pattern>/scratch_gwt/greet</url-pattern> 
        </servlet-mapping> 
    
        <servlet-mapping> 
        <servlet-name>greetServlet2</servlet-name> 
        <url-pattern>/scratch_gwt/greet2</url-pattern> 
        </servlet-mapping> 
    

    私は右の私のスクラッチをクリックすると、 gwtプロジェクトとGWT |コンパイルすると、私は持っています:

    Project: scratch-gwt 
    Log level: Info 
    Ouput style: Obfuscated 
    Entry Point Modules 
        Scratch_gwt - scratch 
        Scratch2_gwt - scratch2 
    

    私はここにScratch2_gwtエントリポイントを追加する必要がありました。コンパイルの出力:

    Compiling module scratch.Scratch_gwt 
        Compiling 5 permutations 
         Compiling permutation 0... 
         Compiling permutation 1... 
         Compiling permutation 2... 
         Compiling permutation 3... 
         Compiling permutation 4... 
        Compile of permutations succeeded 
        Compilation succeeded -- 11.274s 
    Linking into /home/user/workspace/scratch-gwt/war/scratch_gwt 
        Link succeeded 
        Linking succeeded -- 0.180s 
    Compiling module scratch2.Scratch2_gwt 
        Compiling 5 permutations 
         Compiling permutation 0... 
         Compiling permutation 1... 
         Compiling permutation 2... 
         Compiling permutation 3... 
         Compiling permutation 4... 
        Compile of permutations succeeded 
        Compilation succeeded -- 7.821s 
    Linking into /home/user/workspace/scratch-gwt/war/scratch2_gwt 
        Link succeeded 
        Linking succeeded -- 0.109s 
    

    だから私は確かにこれを行うことができますことを伝えることができます。コンパイル設定を再確認し、新しいプロジェクトを最初から開始して再試行するか、設定の一部を投稿してください。

    +0

    今回私は、* Entry Point Modules *に記載された「NewModule」を見てきました。今度は、ログレベルをINFOからALLに上げようとしました。違いはありません - ALLによって生成された冗長なログ出力のどこにでも 'NewModule'の言及はありません。 EclipseとGWTチームに問題を報告してくれてありがとう。私は次に 'webAppCreator'を試しますが、最後に応答をマークする前にもう少し待っています。 – Harry

    +0

    @Harry編集済みの返信 –

    関連する問題