Как настроить GWT для Tomcat? - PullRequest
10 голосов
/ 12 июля 2010

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

Ответы [ 4 ]

12 голосов
/ 02 августа 2012

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

  • Указать кота военному каталогу проекта Gwt в рабочей области
  • Запустить GWT в режиме разработки на внешнем сервере

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

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

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

Для этого добавьте .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, но названный .xml.Если в проекте используются какие-либо источники данных JNDI, их необходимо добавить в этот файл.

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

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

Теперь ко второй части.Мы можем использовать функцию GWT Code Sever, как описано в GWT Debug

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

Но он все равно будет указывать на http://localhost:8888/Fins/Fins.html.Нам нужно отредактировать конфигурацию запуска, чтобы изменить порт Jetty 8888 на 8080 tomcat.

Перейдите для запуска конфигураций и выберите 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.

4 голосов
/ 13 июля 2010

Особо делать нечего.Вам просто нужно скомпилировать проект gwt и экспортировать папку war в папку веб-приложений Tomcats.

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

project_name.war
   - css
   - images
   - WEB-INF
   - gwt compiled_javascript folder
   - index.html
2 голосов
/ 19 марта 2011

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

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

TOMCAT

  1. Скачать версию Tomcat, я предпочитаю 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

GWT

  1. Скачать версию GWT-SDK (я использую 2.0.4, который я считаю более стабильным и совместимым с внешними источниками как библиотека EXT-GWT и TOMCAT) http://code.google.com/p/google-web-toolkit/downloads/list
  2. Откройте свой ТЕРМИНАЛ, если вы UNIX Затем пользователь меняет каталог на GWT-SDK, который вы только что скачали
  3. Изменить разрешения на запуск Скрипт webAppCreator. я обычно изменить разрешения всех файлов с помощью набрав -> chmod 750 *
  4. Создать проект GWT, выполнив в терминал -> ./webAppCreator -out MyProject com.myproject
  5. Все файлы автоматически генерироваться
  6. Переключить каталог на проект, который вы только что создал, введите в терминале -> CD MyProject
  7. Скомпилируй свой проект с муравьем скрипт, предоставленный GWT-SDK, введите в терминале -> муравейник
  8. Откройте ваш проект и скопируйте его файл build.xml, война / содержимое в Папка webcats / ROOT Tomcat
  9. НАКОНЕЦ откройте ваш браузер localhost: 8080 / для запуска вашего проекта (Откроется ваш проект .html страница по умолчанию, потому что это определено внутри /WEB-INF/web.xml файл)

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

0 голосов
/ 03 апреля 2012

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

  1. Скомпилировать исходники java (javac)
  2. Скопировать военную папку в webapps / myapp
  3. Initialize 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>
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...