我是GWT的新手并通过Google文档学习它。如何使用Tomcat设置GWT? 为了工作目的,我需要将它与Tomcat集成。
答案 0 :(得分:12)
在外部tomcat服务器上以开发模式运行GWT的更方便的方法如下。它涉及两个部分
我将在此示例中使用以下路径和名称
第一步是将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数据源,则必须将它们添加到此文件中。
现在启动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
在
运行并访问该应用 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
GWT
恭喜!
答案 3 :(得分:0)
我在托管模式下使用GWT和Tomcat。我修改WebAppCreator生成的ant文件以执行下一步(目标运行 - &gt;托管):
您必须手动重启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>