播放框架weblogic 10.3.3.0部署

cor*_*red 4 deployment weblogic-10.x playframework

我构建了一个Play应用程序,并尝试使用以下命令在weblogic上进行部署:

play war -o myApp myApp
Run Code Online (Sandbox Code Playgroud)

后来我刚刚将爆炸的war目录部署到weblogic,一切正常,但每次我尝试访问一条路线.我收到以下错误:

Not found

GET /myApp/params
Run Code Online (Sandbox Code Playgroud)

这是一个休息服务而不是具有UI的应用程序.我尝试在tomcat上部署,一切正常,但我必须使应用程序上下文为/.我尝试使用weblogic做同样的事情,但它没有用.

这是我的路线文件:

GET     /                                        Application.index

GET  /sectorinformer/{telephone}  Application.show

GET     /sectorinformer/public/                     staticDir:public

*       /{controller}/{action}                  {controller}.{action}
Run Code Online (Sandbox Code Playgroud)

这是我的控制器代码:

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());
}

}
Run Code Online (Sandbox Code Playgroud)

在此先感谢您的帮助.

Oli*_*alo 9

Weblogic 10是完全兼容的J2EE 5应用程序服务器,因此它与JPA 1.0捆绑在一起.

在weblogic上运行Play有两个小问题.

  1. 应用Oracle补丁以使weblogic支持JPA 2.0
  2. 添加部署描述符属性以从web-inf优先化类解析

两者都很简单,Play文档应该将weblogic 10标记为工作部署目标.

要修复#1,请打开以下oracle链接.

对于懒惰的读者,请在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
Run Code Online (Sandbox Code Playgroud)

对于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
Run Code Online (Sandbox Code Playgroud)

要修复#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>
Run Code Online (Sandbox Code Playgroud)

战争文件夹自动拿起玩战争网页存档时所建.

而已!

我个人认为Play应该创建weblogic.xml本身,但这不是1.2.1的工作原理