Как настроить GWT для Tomcat?

Я новичок в GWT и изучаю его через документы Google. Как настроить GWT с Tomcat? Я должен проинтерпретировать его с Tomcat для рабочих целей.

Ответ 1

Нет ничего особенного. Вам просто нужно скомпилировать проект gwt и экспортировать папку войны в папку webapps Tomcats.

Какую IDE вы используете? Если вы используете eclipse или подобное, а также более новую версию tomcat, просто экспортируйте содержимое военной папки в обычный почтовый архив. Затем измените расширение с .zip на .war и скопируйте его в папку webapps. Перезапустите tomcat, и он автоматически распакует архив и создаст соответствующую папку. И.Е. содержимое архива .war может выглядеть примерно так:

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

Ответ 2

Более удобный метод запуска GWT в режиме разработки на внешнем сервере tomcat выглядит следующим образом. Он включает две части

  • Point tomcat to war dir проекта Gwt в рабочем пространстве
  • Запуск GWT в режиме разработки на внешнем сервере

Я буду использовать следующие пути и имена в этом примере

  • Имя веб-приложения - фишки
  • Местоположение проекта - $HOME/workspace/fins
  • Каталог военных проектов - $HOME/workspace/fins/war
  • CATALINA_HOME - $HOME/apache-tomcat-7.0.29 (каталог установки tomcat)

Первый шаг - указать tomcat в военный каталог проекта GWT. Один из способов запуска GWT на внешнем сервере - копирование статических файлов изображений и файлов gwt в директорию tomcat/webapps. При любых изменениях в классах на стороне сервера (например, rcp и т.д.) Или в статических файлах мы должны скопировать их снова. Это будет громоздким во время цикла разработки. Вместо этого мы можем указать tomcat на проект военного каталога, чтобы tomcat запускал приложение непосредственно из рабочего пространства eclipse. При любых изменениях в проекте tomcat выполнит перезагрузку.

Чтобы сделать это, добавьте <appname> .xml(Fins.xml в этом примере) в $CATALINA_HOME/conf/Catalina/localhost со следующим содержимым

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

Это файл context.xml, найденный в приложении META-INF для tomcat, но названный как <appname> .xml. Если проект использует любые источники данных JNDI, они должны быть добавлены в этот файл.

  • Атрибут DocBase указывает на проект war dir в eclipse. С этим tomcat может запускать веб-приложение непосредственно из рабочего пространства eclipse без копирования файлов в директорию tomcat/webapps.
  • Перезагружаемый атрибут гарантирует, что tomcat перезагружает приложение, когда файлы изменяются в eclipse.

Теперь запустите tomcat. Убедитесь, что приложение работает правильно. Внесите некоторые изменения в eclipse, и приложение будет перезагружено tomcat. Cross проверить то же самое в журналах tomcat.

Теперь на вторую часть. Мы можем использовать функцию разграничения кода GWT, как описано в Отладка GWT

Для этого перейдите в "Run As" в контекстном меню проекта и выберите "Веб-приложение (работающий на внешнем сервере)". Введите внешний корневой сервер как Fins и укажите html-страницу как Fins.html. Это запустит приложение GWT в режиме разработки без запуска встроенного сервера Jetty.

Но он все равно укажет на http://localhost:8888/Fins/Fins.html. Мы должны отредактировать конфигурацию запуска, чтобы изменить порт Jet888888 на 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.

Ответ 3

Я использую команду GWT-SDK webAppCreator (из терминала) и генерирует все файлы, необходимые для запуска на внешнем сервере, таком как Tomcat.

Я предоставлю следующие шаги, чтобы помочь другим начать с простой разработки GWT-TOMCAT

TOMCAT

GWT

  • Загрузите версию GWT-SDK (я использую 2.0.4, который я считаю более стабильным и совместимым с внешними источниками как библиотека EXT-GWT и TOMCAT) http://code.google.com/p/google-web-toolkit/downloads/list
  • Откройте ваш TERMINAL, если вы UNIX затем измените каталог на GWT-SDK, который вы только что загрузили.
  • Изменить разрешения для запуска webAppCreator script. я обычно изменять разрешения всех файлов на typing → chmod 750 *
  • Создайте проект GWT, выполнив терминал → ./webAppCreator -out MyProject com.myproject
  • Все файлы автоматически генерируется
  • Переключить каталог в проект только что созданный, введите терминал → cd MyProject
  • Скомпилируйте свой проект с помощью ant script, предоставляемый GWT-SDK, тип в терминале → ant build
  • Откройте проект и скопируйте его. файл build.xml, war/contents для Папка Tomcat webapps/ROOT
  • НАКОНЕЦ открыть тип вашего браузера localhost: 8080/для запуска вашего проекта (Он откроет ваш проект .html по умолчанию, потому что это определяется внутри /WEB -INF/web.xml файл)

Поздравляем!

Ответ 4

Я использую GWT с Tomcat в режиме размещения. Я изменяю файл ant, сгенерированный WebAppCreator, чтобы сделать следующий (target для run- > hosting):

  • Скомпилировать java-источники (javac)
  • Скопировать папку войны в webapps/myapp
  • Инициализировать devmode
  • Вы должны перезапустить вручную 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>