deployment - Play 框架 weblogic 10.3.3.0 部署

标签 deployment weblogic-10.x playframework

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

play war -o myApp myApp

后来我只是将爆炸的 war 目录部署到 weblogic,一切正常,但每次我尝试访问路由时。我收到以下错误:
Not found

GET /myApp/params

这是一个休息服务,而不是一个带有 UI 的应用程序。我尝试在 tomcat 上部署,一切正常,但我必须将应用程序上下文根设置为/。我用 weblogic 尝试了同样的事情,但没有奏效。

这是我的路由文件:
GET     /                                        Application.index

GET  /sectorinformer/{telephone}  Application.show

GET     /sectorinformer/public/                     staticDir:public

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

这是我的 Controller 代码:
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());
}

}

在此先感谢您的帮助。

最佳答案

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

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

  • 应用 Oracle 补丁让 weblogic 支持 JPA 2.0
  • 添加部署描述符属性以优先考虑来自 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>
    

    war文件夹由自动拾取玩 war 当网络文件被建立时。

    就是这样!

    我个人认为 Play 应该自己创建 weblogic.xml,但这不是它从 1.2.1 开始的工作方式

    关于deployment - Play 框架 weblogic 10.3.3.0 部署,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4033765/

    相关文章:

    java - 在 build.sbt 中设置 sbt 对 browserify 的调用,以便在编译时捆绑依赖项

    Java部署,到底是什么?

    windows - 如何通过 Mercurial 进行代码部署?

    java - 如何在 Windows 7 上将 WebLogic 服务器 JDK 从 1.7 更新到 1.8?

    heroku - 用于 heroku 上的 Play Framework 的 Jmap

    playframework - 带有 playframewok 的 HTTP2 协议(protocol)

    json - 推送到 openShift git 时找不到 metadata.json

    windows - 适用于 Windows 程序员的最佳 "official"脚本语言

    java - 获取部署在 weblogic 服务器上的所有应用程序的列表

    java - EJB 依赖注入(inject)适用于 EAR,但不适用于 JAR