Развертывание Play Framework Weblogic 10.3.3.0 - PullRequest
4 голосов
/ 27 октября 2010

Я создал приложение Play и попытался развернуть его в weblogic с помощью следующих команд:

play war -o myApp myApp

Позже я просто развернул развернутый каталог войны в weblogic, все работало нормально, но каждый раз, когда я пытаюсь получить доступ к маршруту. Я получаю следующую ошибку:

Not found

GET /myApp/params

Это служба отдыха, а не приложение с пользовательским интерфейсом. Я попытался развернуть на tomcat, и все работало нормально, но мне пришлось сделать контекст приложения корневым, чтобы быть /. Я попробовал то же самое с weblogic, но это не сработало.

Вот мой файл маршрута:

GET     /                                        Application.index

GET  /sectorinformer/{telephone}  Application.show

GET     /sectorinformer/public/                     staticDir:public

*       /{controller}/{action}                  {controller}.{action}

А вот код моего контроллера:

package controllers;

import models.InstalAddress;
import models.SectorInfo;
import play.Logger;
import play.mvc.Controller;

public class Application extends Controller {

    public static void index() {
       render();
}

public static void show(String telephone) {
    Logger.debug("Starting request");
    Logger.debug("domain: '%s'", request.domain);
    String instalAddressId = InstalAddress.getInstalAddressId(telephone);
    SectorInfo si = new SectorInfo();
    si.initializeSectorInfo(instalAddressId);
    renderXml(si.generateXmlResponse());
}

}

Заранее спасибо за любую помощь.

Ответы [ 4 ]

9 голосов
/ 04 мая 2011

Weblogic 10 является полностью совместимым сервером приложений J2EE 5, и, как следствие, в комплекте с JPA 1.0.

Есть две небольшие проблемы с запуском Play на weblogic.

  1. Применение патча Oracle для поддержки веб-логики JPA 2.0
  2. Добавление свойства дескриптора развертывания для приоритезации разрешения класса из web-inf

Оба являются тривиальными, и документация Play, вероятно, должна пометить weblogic 10 как рабочую цель развертывания.

Чтобы исправить # 1 , откройте следующую oracle link .

Для ленивых читателей, добавьте это объявление вверху wlserver / common / bin / commEnv.sh

export PRE_CLASSPATH=$MW_HOME/modules/javax.persistence_1.0.0.0_2-0-0.jar:$MW_HOME/modules/com.oracle.jpa2support_1.0.0.0_2-0.jar

для windows, файл wlserver / common / bin / commEnv.bat

set PRE_CLASSPATH=%MW_HOME%/modules/javax.persistence_1.0.0.0_2-0-0.jar;%MW_HOME%/modules/com.oracle.jpa2support_1.0.0.0_2-0.jar

Чтобы исправить # 2 , создайте файл weblogic.xml в следующем месте myplayapp / war / WEB-INF / weblogic.xml

<?xml version="1.0" encoding="UTF-8"?>
<weblogic-web-app>
    <container-descriptor>
            <prefer-web-inf-classes>true</prefer-web-inf-classes>
    </container-descriptor>
</weblogic-web-app>

Военная папка автоматически выбирается play war при создании веб-архива.

Вот и все!

Лично я считаю, что Play должен сам создать weblogic.xml, но с 1.2.1 * 1044 это не так

0 голосов
/ 04 апреля 2011

Я развернул свое приложение Play (play 1.1.1) на Websphere 6.1 и столкнулся с некоторыми проблемами.Не уверен, что у вас есть такие же проблемы, но здесь есть (надеюсь, что это может вам помочь):

1- версия JDK: моя "play war xxxx --zip" использует JDK 1.6, а Websphere 6.1 использует JDK1,5.Когда я попытался запустить свое веб-приложение, возникла исключительная ситуация UnsupportedClassVersionException.Я восстановил свой файл войны, используя правильный JDK et voilà!

2 - Когда вы развертываете приложение войны в Websphere, вы можете указать имя контекста.Я не знаю, как сделать это с Weblogic, но вы установили правильное значение?

Как сказал Нильс, анализируйте файлы журналов: вы должны найти, что происходит!

0 голосов
/ 27 апреля 2011

К сожалению, играю!не поддерживает Weblogic.Смотри: http://www.playframework.org/documentation/1.2/deployment

0 голосов
/ 28 октября 2010

К сожалению, у меня нет ни интернет-логического знания, ни времени, чтобы исследовать интересующую вас проблему. Я могу только дать вам несколько советов, что я буду делать:

Попробуйте подключить приложение к отладчику или, если это не сработает, ознакомьтесь с кодом и создайте свою собственную версию с большим количеством операторов журнала. Насколько я знаю, каждый запрос будет обрабатываться ActionInvoker. вызов. Посмотрите, как приходит аргумент. Другой момент - Маршрутизатор, у которого все еще много журналов трассировки. Так что, возможно, вы начинаете сначала и позволяете всему этому работать на уровне трассировки. Возможно, это даст вам подсказку, где искать более подробно.

Для этого начните с чистого приложения и не делайте трюков с настройкой, особенно не запускайте его в ROOT-Context. Просто создайте play war myapp -o myapp.war --zip и разверните его (не забудьте --zip). Затем проанализируйте журнал.

Хорошо выглядишь.

Niels

...