Пример Google App Engine + Struts 1
Да здравствует классический фреймворк Struts 1, в этом руководстве мы покажем вам, как разработать веб-приложениеStruts 1.x в средеGoogle App Engine (GAE).
Используемые инструменты и технологии:
-
JDK 1.6
-
Eclipse 3.7 + плагин Google для Eclipse
-
Google App Engine Java SDK 1.6.3.1
-
Struts 1.3.10
Note
ЭтотGoogle App Engine + Struts 2 example может вас заинтересовать.
Этот пример объединяетStruts 1.x hello world example с этимGAE + Java example.
1. Новый проект веб-приложения
В Eclipse создайте новый проект веб-приложения с именем StrutsGoogleAppEngine.
Плагин Google для Eclipse создаст пример структуры проекта GAE. позже будет интегрировать Struts 1 в эту структуру GAE.
2. Интеграция библиотек Struts 1.x
Посетите эту ссылку наdownload Struts 1.x. Требуются следующие банки:
-
antlr-2.7.2.jar
-
commons-beanutils-1.8.0.jar
-
commons-chain-1.2.jar
-
commons-digester-1.8.jar
-
commons-logging-1.0.4.jar
-
commons-validator-1.3.1.jar
-
oro-2.0.8.jar
-
struts-core-1.3.10.jar
-
struts-taglib-1.3.10.jar
Скопируйте и поместите в папку «war/WEB-INF/lib».
Щелкните правой кнопкой мыши папку проекта и выберите «Properties». Выберите вкладку «Java Build Path» → «Libraries», нажмите кнопку «Add Jars» и выберите более 9 банок из папки «war/WEB-INF/lib» в путь сборки.
3. Интегрируйте Struts 1.x Action и Form
3.1 Delete StrutsGoogleAppEngineServlet.java
, you don’t need this.
3.2 Create a new Action class.
Файл: src / com / example / action / HelloWorldAction.java
package com.example.action; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts.action.Action; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; import com.example.form.HelloWorldForm; public class HelloWorldAction extends Action { public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { HelloWorldForm helloWorldForm = (HelloWorldForm) form; helloWorldForm.setMessage("Hello World!"); return mapping.findForward("success"); } }
3.3 Create a new form class.
Файл: src / com / example / form / HelloWorldForm.java
package com.example.form; import org.apache.struts.action.ActionForm; public class HelloWorldForm extends ActionForm { String message; public String getMessage() { return message; } public void setMessage(String message) { this.message = message; } }
4. Интеграция Struts 1.x JSP-страниц
4.1 Create HelloWorld.jsp
page and put in “war/User/pages/HelloWorld.jsp“.
Файл: HelloWorld.jsp
<%@taglib uri="http://struts.apache.org/tags-bean" prefix="bean"%>Google App Engine + Struts 1.x example
5. Конфигурация Struts XML
Создайте файлstruts-config.xml
и поместите его в «war/WEB-INF/struts-config.xml».
Файл: struts-config.xml
6. web.xml
Обновитеweb.xml
, интегрируйте Struts.
Файл: web.xml
action org.apache.struts.action.ActionServlet config /WEB-INF/struts-config.xml 1 action *.do index.html
7. Включить сессию в GAE
Обновитеappengine-web.xml
, включите поддержку сеанса, Struts это нужно.
Файл: appengine-web.xml
1 true
Note
Если вы не включите сеанс в GAE, вы получите ошибку «java.lang.RuntimeException: Session support is not enabled in appengine-web.xml».
8. Структура каталогов
Просмотрите окончательную структуру каталогов.
9. Беги по местному
Щелкните правой кнопкой мыши проект, запустите его как «Web Application».
10. Развернуть на GAE
Обновите файлappengine-web.xml
, добавьте свой идентификатор приложения App Engine.
Файл: appengine-web.xml
example-strutsgae 1 true
Выберите проект, щелкните значок Google, «Deploy to App Engine».
Note
Не большая проблема, просто следуйте структуре каталогов GAE, по крайней мере, интегрировать Struts 1 проще, чем Struts 2.
Скачать исходный код
Из-за большого размера файла все банки Struts1 исключены, его необходимо загрузить вручную.
Скачать -StrutsGoogleAppEngine (13 КБ)