Пример 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 КБ)