Google Code предлагается на следующих языках: English – Español – 日本語 – 한국어 – Português – Pусский – 中文(简体) – 中文(繁體)
Помимо дескриптора развертывания web.xml, приложение App Engine Java использует файл конфигурации appengine-web.xml для указания зарегистрированного идентификатора приложения и идентификатора версии последнего кода, а также для определения статических файлов в WAR приложения (например, изображений) и файлов ресурсов, используемых приложением. Команда AppCfg использует эти сведения при загрузке приложения.
Java-приложение App Engine должно иметь файл appengine-web.xml в WAR, в каталоге WEB-INF/. Это XML-файл, корневой элемент которого – <appengine-web-app>. Файл минимального размера, указывающий идентификатор приложения, идентификатор версии и не указывающий статические файлы и файлы ресурсов, выглядит следующим образом:
<?xml version="1.0" encoding="utf-8"?> <appengine-web-app xmlns="http://appengine.google.com/ns/1.0"> <application>application-id</application> <version>1</version> </appengine-web-app>
Элемент <application> содержит идентификатор приложения. Это идентификатор приложения, зарегистрированный при создании приложения в консоли администрирования. При загрузке приложения AppCfg получает идентификатор приложения из этого файла.
Элемент <version> содержит идентификатор версии для последней версии кода приложения. Это может быть любая строка. AppCfg использует идентификатор версии при загрузке приложения, указывая App Engine на создание новой версии приложения с определенным идентификатором или замену этой версии, если она уже существует. Можно протестировать новые версии приложения с помощью URL-адреса, например http://version-id.latest.application-id.appspot.com. Выбрать версию приложения, которую видят пользователи, версию "по умолчанию", можно с помощью консоли администрирования.
Элементы <static-files> и <resource-files> описаны в следующем разделе.
DTD и спецификации схемы для этого файла находятся в каталоге docs/ SDK.
Множество веб-приложений имеют файлы, непосредственно передаваемые браузеру пользователя, например изображения, таблицы CSS-стилей и код JavaScript браузера. Они называются статическими файлами, поскольку не изменяются, и могут использоваться с веб-серверов, специально предназначенных для статического содержания. App Engine получает статические файлы со специально выделенных серверов и из кэшей.
Файлы, доступные для кода приложения с помощью файловой системы, называются resource files. Эти файлы сохраняются на серверах приложений вместе с приложениями.
По умолчанию все файлы в WAR считаются статическими файлами и файлами ресурсов, за исключением файлов JSP, которые преобразуются в классы сервлета и сопоставляются с путями URL, и файлов в каталоге WEB-INF/, которые никогда не используются в качестве статических файлов и всегда доступны для приложения как файлы ресурсов.
Можно определить, какие файлы считаются статическими, а какие – файлами ресурсов, с помощью элементов в файле appengine-web.xml. Элемент <static-files> указывает шаблоны, сопоставляющие пути файлов для включения и исключения из списка статических файлов, изменяя поведение по умолчанию. Аналогично, элемент <resource-files> указывает файлы, считающиеся файлами ресурсов.
Схемы путей указываются с помощью нуля или более элементов <include> и <exclude>. В схеме * обозначает ноль или более символов в названии файла или каталога, а ** – ноль или более каталогов в пути.
Элемент <include> переопределяет поведение по умолчанию, включая все файлы. Элемент <exclude> применяется после всех шаблонов <include> (а также шаблона по умолчанию, если <include> явно не указаны).
Например, чтобы указать, что все файлы, названия которых заканчиваются на .png, являются статическими (включая файлы в WEB-INF/), за исключением файлов в каталоге data/ и всех подкаталогов, используйте следующий фрагмент:
<static-files>
<include path="/**.png" />
<exclude path="/data/**.png" />
</static-files>
Аналогично, чтобы указать, что все файлы, названия которых заканчиваются на .xml, являются файлами ресурсов (включая файлы не в каталоге WEB-INF/), за исключением файлов в каталоге feeds/ и во всех подкаталогах, используйте следующий фрагмент:
<resource-files>
<include path="/**.xml" />
<exclude path="/feeds/**.xml" />
</resource-files>
Статические файлы получаются с помощью типа MIME, выбранного на основе расширения названия файла. Для получения файла с особым типом MIME сделайте его файлом ресурсов, а не статическим файлом, и создайте сервлет для получения данных с особым типом MIME.
В файле appengine-web.xml могут определяться системные свойства и переменные среды, устанавливаемые при запуске приложения.
<system-properties>
<property name="myapp.maximum-message-length" value="140" />
<property name="myapp.notify-every-n-signups" value="1000" />
<property name="myapp.notify-url" value="http://www.example.com/signupnotify" />
</system-properties>
<env-variables>
<env-var name="DEFAULT_ENCODING" value="UTF-8" />
</env-variables>
Если приложение использует защищенные URL-адреса (SSL, например https://...), необходимо включить SSL для приложения в файле appengine-web.xml. Чтобы включить SSL, добавьте элемент <ssl-enabled> в файл:
<ssl-enabled>true</ssl-enabled>
Подробнее об определении защищенных URL-адресов рассказано в статье Дескриптор развертывания: защищенные URL.
В App Engine имеется реализация сеансов с помощью интерфейса сеанса сервлета. Эта реализация использует хранилище данных App Engine и кэш памяти для хранения данных сеансов.
По умолчанию эта функция отключена. Чтобы включить ее, добавьте в файл appengine-web.xml следующий фрагмент:
<sessions-enabled>true</sessions-enabled>
Реализация создает объекты хранилища данных типа _ah_SESSION и объекты в кэше памяти, используя ключи с префиксом _ahs.