У меня наконец-то все заработало.Я запишу свои шаги на случай, если кто-то еще столкнется с подобными проблемами при развертывании приложения Play в WebSphere в будущем.
1 - Первой проблемой был 404. Websphere не передает запросы на root (/)приложению для обработки (wtf?), поэтому необходимо определить аналогичный маршрут в файле маршрутов:
GET /* Application.index
вместо (или поверх)
GET / Application.index
2 - Следующей проблемой были ошибки, связанные с несуществующими методами (JPA).Play использует JPA 2.0, а WebSphere 7 использует собственную версию OpenJPA 1.0.Вы можете установить пакет функций для JPA 2 и OSGI (вам не нужна часть OSGI, поэтому ее можно игнорировать).Обратите внимание, что пакет функций требует, чтобы у вас был установлен WebSphere 7.0.0.9 или новее.Это означает совпадение пакетов исправлений как для сервера приложений, так и для комплектного JDK.Пакет исправлений IE 21 (самый последний на тот момент или на момент написания статьи) для сервера и JDK необходимо сначала установить перед установкой пакета функций JPA.По окончании установки пакета возможностей вам будет предложено запустить инструмент профиля.Скажи да.Этот инструмент позволит вам «увеличить» свой профиль (серверный узел, на котором вы собираетесь установить свою войну).Дополнение!
3 - Создайте файл войны, который будет работать в WebSphere:
play war <appFolder> -o <outputFolder> --zip --%prod
Это создаст папку с именем <outputFolder>
(взрывная война) и файл .war с именем<outputFolder>
.war, с идентификатором приложения, установленным на prod.Разнесенную войну можно удалить.
При запуске этой команды в linux моя папка WEB-INF постоянно помещается в безымянную папку (то есть ниже уровня корневого уровня файла войны).Другими словами, вместо / WEB-INF / создается структура наподобие // WEB-INF /.Во всяком случае, я сейчас исправляю это вручную, заново заархивировав его.Кто-нибудь знает, как избежать этой проблемы?
4 - Установите файл war в WebSphere со всеми настройками по умолчанию в консоли администратора ... или настройте их, если знаете, что делаете.
5 - Я не совсем уверен, нужен ли этот шаг (ничего не меняет для моего конкретного приложения), но все советы, которые я читал онлайн о настройке приложений Play для запуска в WebSphere, говорят об этом.Мех, это не повредит.Нажмите на ваше установленное приложение.Нажмите на ссылку «Загрузка классов и обнаружение обновлений».Затем выберите параметр «Классы, загруженные локальным загрузчиком классов первым (родительский последний)».Хорошо.Сохранить.
6 - Откройте страницу браузера по вашему адресу (localhost: 9080, если локально работает websphere) и протестируйте.На данный момент это должно работать!С надеждой.Удачи.