如何为Tomcat设置GWT?

时间:2010-07-12 18:56:47

标签: tomcat gwt

我是GWT的新手并通过Google文档学习它。如何使用Tomcat设置GWT? 为了工作目的,我需要将它与Tomcat集成。

4 个答案:

答案 0 :(得分:12)

在外部tomcat服务器上以开发模式运行GWT的更方便的方法如下。它涉及两个部分

  • 将tomcat指向工作区中Gwt项目的战争目录
  • 在外部服务器上以开发模式运行GWT

我将在此示例中使用以下路径和名称

  • 网络应用名称 - Fins
  • 项目位置 - $ HOME / workspace / fins
  • 项目战目录 - $ HOME / workspace / fins / war
  • CATALINA_HOME - $ HOME / apache-tomcat-7.0.29 (tomcat installation dir)

第一步是将tomcat指向GWT项目的战争目录。在外部服务器上运行GWT的一种方法是将静态,图像文件和gwt dir复制到tomcat / webapps目录。在服务器端类(如rcp等)或静态文件的任何更改中,我们必须再次复制它们。在开发周期中这将是麻烦的。相反,我们可以将tomcat指向项目的war目录,以便tomcat直接从eclipse工作区运行应用程序。在项目中的任何更改tomcat都会重新加载。

为此,请将< appname> .xml(此示例中的Fins.xml)添加到$ CATALINA_HOME / conf / Catalina / localhost,内容如下

<Context path="/Fins" docBase="/home/m/workspace/fins/war" reloadable="true"> </Context>

这实际上是在tomcat应用程序的META-INF中找到的context.xml文件,但命名为&lt; appname&gt; .xml。如果项目使用任何JNDI数据源,则必须将它们添加到此文件中。

  • DocBase属性指向eclipse中项目的战争目录。有了这个 tomcat能够直接从eclipse工作区运行Web应用程序 无需将文件复制到tomcat / webapps目录。
  • 可重新加载的属性确保tomcat每次都重新加载应用程序 文件在eclipse中被修改。

现在启动tomcat。检查应用程序是否正常运行在eclipse中进行一些更改,应用程序将由tomcat重新加载。在tomcat日志中交叉验证相同。

现在到第二部分。我们可以使用GWT Debug

中详述的GWT代码服务器功能

要执行此操作,请转到项目上下文菜单中的“运行方式”选项,然后选择“Web应用程序(在外部服务器上运行)”。输入外部服务器根目录为Fins,并将html页面作为Fins.html。这将在开发模式下运行GWT应用程序,而无需运行嵌入式Jetty服务器。

但它仍然指向http://localhost:8888/Fins/Fins.html。我们必须编辑运行配置以将Jetty端口8888更改为tomcat的8080.

转到运行配置并选择Fin.html(外部)。将GWT标签中的浏览器字段更改为http://localhost:8080/Fins/Fins.html


enter image description here


运行并访问该应用

http://localhost:8080/Fins/Fins.html?gwt.codesvr=127.0.0.1:9997

现在您将能够完全使用GWT开发模式。

答案 1 :(得分:4)

没有什么特别的事要做。您只需编译您的gwt项目,并将war文件夹导出到Tomcats webapps文件夹。

您使用的是什么IDE?如果您正在使用eclipse或类似的,以及更新版本的tomcat,只需将war文件夹的内容导出为常规zip存档。然后将扩展名从.zip更改为.war,并将其复制到webapps文件夹。重启tomcat,它会自动解压缩存档并创建相应的文件夹。 I.E. .war存档的内容可能如下所示:

project_name.war
   - css
   - images
   - WEB-INF
   - gwt compiled_javascript folder
   - index.html

答案 2 :(得分:2)

我使用GWT-SDK webAppCreator命令(来自终端),它生成在Tomcat等外部服务器上运行所需的所有文件。

我将提供我遵循的步骤,以帮助其他人开始简单的GWT-TOMCAT开发

TOMCAT

  1. 下载Tomcat版本,我更喜欢 雄猫6 http://apache.tsl.gr/tomcat/tomcat-6/v6.0.32/bin/apache-tomcat-6.0.32.zip
  2. 按照说明进行操作 具体操作系统依次排列 安装它。我跟着这个 教程(MAC-OS) http://www.malisphoto.com/tips/tomcatonosx.html
  3. GWT

    1. 下载GWT-SDK版本(我使用 2.0.4我发现它更稳定并且与外部源兼容 像EXT-GWT库和TOMCAT) http://code.google.com/p/google-web-toolkit/downloads/list
    2. 如果您是UNIX,请打开您的TERMINAL 用户然后将目录更改为 您刚刚下载的GWT-SDK
    3. 更改要运行的权限 webAppCreator脚本。我通常 修改所有文件的权限 打字 - &gt; chmod 750 *
    4. 通过执行来创建一个GWT项目 终端 - &gt; ./webAppCreator -out MyProject com.myproject
    5. 所有文件都是自动的 产生
    6. 将目录切换到您的项目 刚刚创建,输入终端 - &gt;光盘 MyProject的
    7. 使用ant编译项目 由GWT-SDK提供的脚本,类型 在终端 - &gt; ant build
    8. 打开你的项目并复制它 build.xml文件,war / contents到 Tomcat的webapps / ROOT文件夹
    9. 最后打开您的浏览器类型 localhost:8080 /运行你的项目 (它会打开你的项目.html 页面默认是因为它 在/WEB-INF/web.xml中定义 文件)
    10. 恭喜!

答案 3 :(得分:0)

我在托管模式下使用GWT和Tomcat。我修改WebAppCreator生成的ant文件以执行下一步(目标运行 - &gt;托管):

  1. 编译java源代码(javac)
  2. 将war文件夹复制到webapps / myapp
  3. 初始化devmode
  4. 您必须手动重启Tomcat

    <?xml version="1.0" encoding="utf-8" ?>
    <project name="app" default="build" basedir=".">
      <property name="tomcat.home" value="C:/Program Files/Apache Software Foundation/Tomcat 7.0" />
      <!-- Arguments to gwtc and devmode targets -->
      <property name="gwt.args" value="" />
    
      <!-- Configure path to GWT SDK -->
      <property name="gwt.sdk" location="D:/Instaladores/gwt-2.3.0" />
    
      <path id="project.class.path">
        <pathelement location="war/WEB-INF/classes"/>
        <pathelement location="${gwt.sdk}/gwt-user.jar"/>
        <fileset dir="${gwt.sdk}" includes="gwt-dev*.jar"/>
        <!-- Add any additional non-server libs (such as JUnit) -->
        <fileset dir="war/WEB-INF/lib" includes="**/*.jar"/>
      </path>
    
      <target name="libs" description="Copy libs to WEB-INF/lib">
        <mkdir dir="war/WEB-INF/lib" />
        <copy todir="war/WEB-INF/lib" file="${gwt.sdk}/gwt-servlet.jar" />
        <copy todir="war/WEB-INF/lib" file="${gwt.sdk}/gwt-servlet-deps.jar" />
        <!-- Add any additional server libs that need to be copied -->
      </target>
    
      <target name="javac" depends="libs" description="Compile java source to bytecode">
        <mkdir dir="war/WEB-INF/classes"/>
        <javac srcdir="src" includes="**" encoding="utf-8"
    destdir="war/WEB-INF/classes"
    source="1.5" target="1.5" nowarn="true"
    debug="true" debuglevel="lines,vars,source">
          <classpath refid="project.class.path"/>
        </javac>
        <copy todir="war/WEB-INF/classes">
          <fileset dir="src" excludes="**/*.java"/>
        </copy>
      </target>
    
      <target name="mywar" depends="javac,clean" description="Copy war folder">
    <!--   deploy war folder without compile java to js -->    
        <copy todir="${tomcat.home}/webapps/app">
            <fileset dir="${basedir}/war"/>
        </copy>     
        <chmod perm="a+w">
            <dirset dir="${tomcat.home}/webapps/app/files" />          
        </chmod>
      </target>
    
    
      <target name="gwtc" depends="javac" description="GWT compile to JavaScript (production mode)">
        <java failonerror="true" fork="true" classname="com.google.gwt.dev.Compiler">
          <classpath>
            <pathelement location="src"/>
            <path refid="project.class.path"/>
            <pathelement location="D:/Instaladores/gwt-2.3.0/validation-api-1.0.0.GA.jar" />
            <pathelement location="D:/Instaladores/gwt-2.3.0/validation-api-1.0.0.GA-sources.jar" />
          </classpath>
          <!-- add jvmarg -Xss16M or similar if you see a StackOverflowError -->
          <jvmarg value="-Xmx512M"/>
          <arg line="-war"/>
          <arg value="war"/>
          <!-- Additional arguments like -style PRETTY or -logLevel DEBUG -->
          <arg line="${gwt.args}"/>
          <arg value="com.app.App"/>
        </java>
      </target>
    
      <target name="devmode" depends="mywar" description="Run development mode">
        <java failonerror="true" fork="true" classname="com.google.gwt.dev.DevMode">
          <classpath>
            <pathelement location="src"/>
            <path refid="project.class.path"/>
            <pathelement location="D:/Instaladores/gwt-2.3.0/validation-api-1.0.0.GA.jar" />
            <pathelement location="D:/Instaladores/gwt-2.3.0/validation-api-1.0.0.GA-sources.jar" />
          </classpath>
          <jvmarg value="-Xmx256M"/>
          <arg value="-startupUrl"/>
          <arg value="http://localhost:8080/app/App.html"/>
          <arg line="-war"/>
          <arg value="war"/>
          <!-- Additional arguments like -style PRETTY or -logLevel DEBUG -->
         <arg line="${gwt.args}"/>
          <arg value="com.app.App"/>
          <arg value="-noserver"/>      
        </java>
      </target>
    
      <target name="hosted" depends="devmode" description="Run development mode (NOTE: the 'hosted' target is deprecated)" />
    
      <target name="build" depends="gwtc" description="Build this project" />
    
      <target name="war" depends="build" description="Create a war file">
        <zip destfile="${tomcat.home}/webapps/app.war" basedir="war"/>
      </target>
    
      <target name="clean" description="Cleans this project">    
        <delete dir="${tomcat.home}/webapps/app" />    
      </target>
    
    </project>