1

私はこの答えに従っていました(Edに感謝します)そして彼が問題を完全に解決していないことに気づきました。

SuperDevMode / CodeServerを起動して実行していますが、htmlファイルが含まれていないため、ちょっと役に立たないです。本当に2つのWebサーバーを実行する必要がありますか?

それが重要な場合は、Gradleを使用しています。

4

2 に答える 2

2

サーバー側に何もない場合は、HTMLホストページをwarフォルダー内ではなく、パブリックパスに配置するだけで、モジュールの一部としてSuperDevModeCodeServerによって提供されます。あなたのを調整することを忘れないでください:ページの兄弟になります。<script>*.nocache.js

于 2012-11-19T23:05:19.330 に答える
1

これが私が思いついた答えです。HTMLファイルで、*。nocache.jsをロードするスクリプトを削除し、代わりに次のように動的に生成しました。

<script type="text/javascript">
    function loadScript(scriptSrc)
    {
        var scriptTag = document.createElement('script');
        scriptTag.type = 'text/javascript';
        scriptTag.async = true;
        scriptTag.src = scriptSrc;
        var s = document.getElementsByTagName('script')[0];
        s.parentNode.insertBefore(scriptTag, s);
    }

    // Load the GWT script
    loadScript(('file:' == document.location.protocol ? "http://localhost:9876/" : "") + "admin/admin.nocache.js");
</script>

コードサーバーを実行するためのGradleタスクは次のようになります。

task codeServer(dependsOn: "war") << {
    println("*----------------------------------------------------------------------------------------------*")
    println("   Ignore what this says below about going to http://localhost:9876/")
    println("   Instead, once the server below is up, in a separate command line, type:")
    println("       start $buildDir\\exploded\\Admin.html")
    println("*----------------------------------------------------------------------------------------------*")

    def gwtTempDir = "$buildDir/gwtTemp"
    (new File(gwtTempDir)).mkdirs()

    ant.java(classname: "com.google.gwt.dev.codeserver.CodeServer", failonerror: "true", fork: "true") {
        classpath {
            pathElement(location: "src/main/java")
            pathElement(location: "src/main/resources")
            pathElement(location: "$buildDir/classes/main")
            pathElement(path: configurations.compile.asPath)
        }
        jvmarg(value: "-Xmx512m")
        sysproperty(key: "java.util.logging.SimpleFormatter.format", value: System.getProperty("java.util.logging.SimpleFormatter.format"));
        arg(line: "-workDir " + gwtTempDir)
        arg(line: "-src " + "src/main/java")
        arg(value: "com.onlyinsight.oventio.Admin")
    }
}

これで、2つ目のWebサーバーを使用する代わりに、ブラウザーでfile:/// F:/projects/ConferenceModule/build/exploded/Admin.htmlを指定すると、すべて機能します。

それが他の誰かに役立つことを願っています。

于 2012-11-19T17:37:13.847 に答える