【问题标题】:GWT application in local tomcat: nocache.js 404 not found本地 tomcat 中的 GWT 应用程序:找不到 nocache.js 404
【发布时间】:2015-07-16 19:38:44
【问题描述】:

目前我正在尝试构建(maven)并运行(tomcat 6.0.36)一个 GWT 应用程序。该应用程序在 Eclipse 中运行良好,构建成功。在tomcat启动过程中没有问题。

当我调用登录页面时,我收到 http 404 错误,因为 nochache.js 文件不存在。展开的战争目录中没有 nochache.js 文件是正确的。但为什么?任何想法?

萤火虫:

HTML 文件:

<script type="text/javascript" language="javascript" src="dashboard/dashboard.nocache.js"></script>

pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>Dashboard</groupId>
    <artifactId>Dashboard</artifactId>
    <version>0.0.6-SNAPSHOT</version>
    <packaging>war</packaging>

    <properties>
        <!-- Convenience property to set the GWT version -->
        <gwtVersion>2.5.0</gwtVersion>
        <gwtp.version>0.7</gwtp.version>
        <agoVersion>2.7.4</agoVersion>
        <oracleJdbcVersion>11</oracleJdbcVersion>

        <!-- GWT needs at least java 1.5 -->
        <webappDirectory>${project.build.directory}/${project.build.finalName}</webappDirectory>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <dependencies>

        <dependency>
            <groupId>com.smartgwt</groupId>
            <artifactId>smartgwt</artifactId>
            <version>4.0</version>
        </dependency>

        <dependency>
            ...
        </dependency>

        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
            <version>1.6.4</version>
        </dependency>

        <!-- ========================================== -->
        <!-- ================== Logger ================ -->
        <!-- ========================================== -->
        <dependency>
            <groupId>com.allen-sauer.gwt.log</groupId>
            <artifactId>gwt-log</artifactId>
            <version>3.1.8</version>
        </dependency>

        <!-- ========================================== -->
        <!-- ================== GWT ================ -->
        <!-- ========================================== -->
        <dependency>
            <groupId>com.google.gwt</groupId>
            <artifactId>gwt-servlet</artifactId>
            <version>${gwtVersion}</version>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>com.google.gwt</groupId>
            <artifactId>gwt-user</artifactId>
            <version>${gwtVersion}</version>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>com.google.web.bindery</groupId>
            <artifactId>requestfactory-server</artifactId>
            <version>${gwtVersion}</version>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>com.google.web.bindery</groupId>
            <artifactId>requestfactory-apt</artifactId>
            <version>${gwtVersion}</version>
            <scope>runtime</scope>
        </dependency>

        <!-- MVP component -->
        <dependency>
            <groupId>com.gwtplatform</groupId>
            <artifactId>gwtp-mvp-client</artifactId>
            <version>${gwtp.version}</version>
            <scope>compile</scope>
        </dependency>

        <!-- Dispatch component -->
        <dependency>
            <groupId>com.gwtplatform</groupId>
            <artifactId>gwtp-dispatch-client</artifactId>
            <version>${gwtp.version}</version>
            <scope>compile</scope>
        </dependency>

        <dependency>
            <groupId>com.gwtplatform</groupId>
            <artifactId>gwtp-dispatch-server-guice</artifactId>
            <version>${gwtp.version}</version>
        </dependency>

        <!-- Crawler component -->
        <dependency>
            <groupId>com.gwtplatform</groupId>
            <artifactId>gwtp-crawler</artifactId>
            <version>${gwtp.version}</version>
        </dependency>

        <!-- Annotation component -->
        <dependency>
            <groupId>com.gwtplatform</groupId>
            <artifactId>gwtp-processors</artifactId>
            <version>${gwtp.version}</version>
        </dependency>
        <dependency>
            <groupId>com.google.gwt.inject</groupId>
            <artifactId>gin</artifactId>
            <version>1.5.0</version>
        </dependency>

        <!-- Some more third-party dependencies -->
        <dependency>
            <groupId>com.google.inject.extensions</groupId>
            <artifactId>guice-servlet</artifactId>
            <version>3.0</version>
        </dependency>
        <dependency>
            <groupId>com.google.inject.extensions</groupId>
            <artifactId>guice-multibindings</artifactId>
            <version>3.0</version>
        </dependency>
        <dependency>
            <groupId>jfree</groupId>
            <artifactId>jfreechart</artifactId>
            <version>1.0.13</version>
        </dependency>
        <dependency>
            <groupId>com.googlecode.gflot</groupId>
            <artifactId>gflot</artifactId>
            <version>3.1.1</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>oracle</groupId>
            <artifactId>oracle</artifactId>
            <version>11</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>com.gwtext</groupId>
            <artifactId>gwtext</artifactId>
            <version>2.0.5</version>
        </dependency>
    </dependencies>

    <build>
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>2.0.2</version>
                    <configuration>
                        <source>1.7</source>
                        <target>1.7</target>
                        <encoding>UTF-8</encoding>
                    </configuration>
                </plugin>

                <!-- GWT Maven Plugin -->
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>gwt-maven-plugin</artifactId>
                    <version>${gwtVersion}</version>

                    <!-- Plugin configuration. There are many available options, see gwt-maven-plugin 
                        documentation at codehaus.org -->
                    <configuration>
                        <runTarget>Dashboard.html</runTarget>
                        <module>com.xxx.dashboards.Dashboard</module>
                        <hostedWebapp>${webappDirectory}</hostedWebapp>

                        <pluginExecutions>
                            <pluginExecution>
                                <goals>
                                    <goal>compile</goal>
                                    <goal>test</goal>
                                    <goal>generateAsync</goal>
                                </goals>
                            </pluginExecution>
                        </pluginExecutions>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.mortbay.jetty</groupId>
                    <artifactId>jetty-maven-plugin</artifactId>
                    <version>8.1.10.v20130312</version>
                </plugin>
            </plugins>
        </pluginManagement>
    </build>
    <repositories>
        ...
    </repositories>
</project>

我的 pom.xml 是否需要任何修改?

【问题讨论】:

    标签: java maven tomcat gwt gwtp


    【解决方案1】:

    您为 gwt-maven-plugin 配置执行的方式是错误的:它应该是 &lt;executions&gt;&lt;execution&gt; 而不是分别为 &lt;pluginExecutions&gt;&lt;pluginExecution&gt;,它们应该超出 &lt;configuration&gt; .
    而且您必须从&lt;build&gt;/&lt;plugins&gt; 引用gwt-maven-plugin,而不仅仅是&lt;pluginManagement&gt;(它适用于maven-compiler-plugin,因为它被&lt;packaging&gt;war&lt;/packaging&gt; 隐式绑定到编译阶段;和jetty-maven-plugin 没问题,因为它会从命令行调用)


    附带说明:将所有 GWT 依赖项(gwt-servlet 除外,但特别是 gwt-user)与 &lt;scope&gt;provided&lt;/scope&gt; 一起放置,以避免将它们捆绑到您的 WAR 中。另外,requestfactory-apt 是在编译时使用的,在运行时是没用的,所以也要使用&lt;scope&gt;provided&lt;/scope&gt;;并且 requestfactory-server 是 gwt-servlet 的子集,因此您不需要两者。
    我强烈建议您将项目拆分为几个模块,一个模块用于 GWT 客户端代码,一个模块用于服务器端代码(可能还有第三个模块用于您在客户端和服务器之间共享的代码,例如GWT-RPC 或 RequestFactory 接口,以及您将通过 GWT-RPC 传输的类)。

    【讨论】:

      【解决方案2】:

      它适用于以下生命周期映射。

      <pluginManagement>
          <plugins>
              <plugin>
                  <groupId>org.eclipse.m2e</groupId>
                  <artifactId>lifecycle-mapping</artifactId>
                  <version>1.0.0</version>
                  <configuration>
                      <lifecycleMappingMetadata>
                          <pluginExecutions>
                              <pluginExecution>
                                  <pluginExecutionFilter>
                                      <groupId> org.apache.maven.plugins </groupId>
                                      <artifactId> maven-dependency-plugin
                                      </artifactId>
                                      <versionRange> [2.1,) </versionRange>
                                      <goals>
                                          <goal>unpack</goal>
                                          <goal>build-classpath</goal>
                                      </goals>
                                  </pluginExecutionFilter>
                                  <action>
                                      <ignore></ignore>
                                  </action>
                              </pluginExecution>
                              <pluginExecution>
                                  <pluginExecutionFilter>
                                      <groupId>
                                          org.codehaus.mojo
                                      </groupId>
                                      <artifactId> gwt-maven-plugin </artifactId>
                                      <versionRange> [2.5.0,) </versionRange>
                                      <goals>
                                          <goal>generateAsync</goal>
                                      </goals>
                                  </pluginExecutionFilter>
                                  <action>
                                      <ignore></ignore>
                                  </action>
                              </pluginExecution>
                              <pluginExecution>
                                  <pluginExecutionFilter>
                                      <groupId>org.bsc.maven</groupId>
                                      <artifactId> maven-processor-plugin </artifactId>
                                      <versionRange> [2.0.5,)
                                      </versionRange>
                                      <goals>
                                          <goal>process</goal>
                                      </goals>
                                  </pluginExecutionFilter>
                                  <action>
                                      <ignore></ignore>
                                  </action>
                              </pluginExecution>
                              <pluginExecution>
                                  <pluginExecutionFilter>
                                      <groupId> org.codehaus.mojo </groupId>
                                      <artifactId>
                                          build-helper-maven-plugin
                                      </artifactId>
                                      <versionRange> [1.7,) </versionRange>
                                      <goals>
                                          <goal>add-source</goal>
                                      </goals>
                                  </pluginExecutionFilter>
                                  <action>
                                      <ignore></ignore>
                                  </action>
                              </pluginExecution>
                          </pluginExecutions>
                      </lifecycleMappingMetadata>
                  </configuration>
              </plugin>
              <plugin>
                  <groupId>org.apache.maven.plugins</groupId>
                  <artifactId>maven-jar-plugin</artifactId>
                  <version>2.4</version>
              </plugin>
              <plugin>
                  <groupId>org.apache.maven.plugins</groupId>
                  <artifactId>maven-war-plugin</artifactId>
                  <version>2.4</version>
              </plugin>
              <plugin>
                  <groupId>org.apache.maven.plugins</groupId>
                  <artifactId>maven-archiver</artifactId>
                  <version>2.5</version>
              </plugin>
          </plugins>
      </pluginManagement>
      

      【讨论】:

        猜你喜欢
        • 2018-07-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-05-14
        • 2017-08-31
        相关资源
        最近更新 更多