为什么我的GWT Web应用程序不能正常运行?

时间:2014-04-17 21:25:44

标签: java html xml gwt

我正在阅读这本书:GWT in Action。在第一章我正在完成第一个hello world应用程序。它都处于开发模式。 我的问题是,当我打开URL网页时,我的.java文件中的标签没有显示出来。没有显示任何与标签(“Hello World!”)相对应的内容。

编辑:在显示的网页上,我在谷歌浏览器中按F12,看看我是否能找到任何奇怪的东西。收到错误:无法加载资源:服务器响应状态为404(未找到)

HelloWorld.gwt.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE module PUBLIC "-//Google Inc.//DTD Google Web Toolkit 2.6.0//EN" "http://google-web-toolkit.googlecode.com/svn/tags/2.6.0/distro-source/core/src/gwt-module.dtd">
    <module>
        <inherits name="com.google.gwt.user.User" />
        <source path="client" />
        <entry-point class="com.example.gwt.client.HelloWorld"></entry-point>
    </module>

HelloWorld.java

package com.example.gwt.client;



import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.RootPanel;

public class HelloWorld implements EntryPoint {

    @Override
    public void onModuleLoad() {


        RootPanel.get().add(new Label("Hello World!"));

    }

}

HelloWorld.html的

<!doctype html>
<html>
  <head>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    <title>HelloWorld</title>
    <script type="text/javascript" language="javascript" src=".nocache.js"></script>
  </head>

  <body>
    <iframe src="javascript:''" id="__gwt_historyFrame" tabIndex='-1' style="position:absolute;width:0;height:0;border:0"></iframe>

  </body>
</html>

我的控制台在将其作为Web应用程序运行后显示:

[WARN] Server class 'org.eclipse.jetty.servlet.listener.ELContextCleaner' could not be found in the web app, but was found on the system classpath
   [WARN] Adding classpath entry 'file:/C:/Users/Qs/Desktop/eclipse/plugins/com.google.gwt.eclipse.sdkbundle_2.6.0/gwt-2.6.0/gwt-dev.jar' to the web app classpath for this session
   For additional info see: file:/C:/Users/Qs/Desktop/eclipse/plugins/com.google.gwt.eclipse.sdkbundle_2.6.0/gwt-2.6.0/doc/helpInfo/webAppClassPath.html

2 个答案:

答案 0 :(得分:1)

如果您未在rename-to中指定gwt.xml,如下所示,则默认情况下GWT将生成的nocache.js放在war目录下的位置名称下gwt.xml后跟其名称,如下面的快照所示。

<module rename-to="xyz">

有关详细信息,请查看gwt-module dtd

请查看Defining a module and Renaming modules


有两种方法可以解决这个问题:

  1. rename-to中定义gwt.xml,比第二种解决方案更优选

    • gwt.xml

      <module rename-to="hello">
      
    • HTML

      <script type="text/javascript" language="javascript" src="hello/hello.nocache.js"></script>
      
  2. 使用默认方式

    • HTML

      <script type="text/javascript" language="javascript" src="com.example.gwt.HelloWorld/com.example.gwt.HelloWorld.nocache.js"></script>
      

  3. 这是一个让它更清晰的快照

    enter image description here

答案 1 :(得分:0)

将HelloWorld.html中脚本标记的src属性更改为

src="com.example.gwt.client.HelloWorld/com.example.gwt.client.HelloWorld.nocache.js"

如果仍然无法正常工作,请运行GWT编译器并查看它生成的文件,以确定* .nocache.js文件的确切名称。