Deployment Play framework weblogic 10.3.3.0部署

Deployment Play framework weblogic 10.3.3.0部署,deployment,weblogic-10.x,playframework,Deployment,Weblogic 10.x,Playframework,我构建了一个Play应用程序,并尝试使用以下命令在weblogic上部署: play war -o myApp myApp 后来我将分解的war目录部署到weblogic,一切正常,但每次我尝试访问路由时。我得到以下错误: Not found GET /myApp/params 这是一个rest服务,不是一个具有UI的应用程序。我尝试在tomcat上部署,一切正常,但我必须将应用程序上下文根设置为/。我用weblogic做了同样的尝试,但没有成功 这是我的路线文件: GET /

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

play war -o myApp myApp
后来我将分解的war目录部署到weblogic,一切正常,但每次我尝试访问路由时。我得到以下错误:

Not found

GET /myApp/params
这是一个rest服务,不是一个具有UI的应用程序。我尝试在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());
}

}

提前感谢您的帮助。

不幸的是,我既没有weblogic知识,也没有时间调查您感兴趣的问题。我只能给你一些提示我会怎么做:

尝试使用调试器连接应用程序,或者如果调试器不起作用,请签出代码并使用大量日志语句构建自己的版本。 据我所知,每个请求都将由ActionInvoker处理。援引看看这个论点是怎么来的。另一点是路由器,它仍然有很多跟踪日志。所以,也许你可以先开始,让整个东西在跟踪级别上运行。也许这会给你一些提示,告诉你在哪里可以看到更多的细节

要做到这一点,请从一个干净的应用程序开始,不要使用任何配置技巧,特别是不要在根上下文中运行它。只需创建
播放war-myapp-o myapp.war--zip并部署它(别忘了--zip)。然后分析日志

好看

Niels

我将Play应用程序(Play 1.1.1)部署到WebSphere6.1,遇到了一些问题。不确定您是否有相同的问题,但这里有(希望它能帮助您):

1-JDK版本:我的“play war xxxx--zip”使用JDK 1.6,WebSphere6.1使用JDK 1.5。当我尝试启动我的webapp时,抛出了一个不受支持的ClassVersionException。我使用正确的JDK et voilá重新生成了war文件

2-将war应用程序部署到Websphere时,可以指定上下文的名称。我不知道如何使用Weblogic,但您是否设置了正确的值


正如尼尔斯所说,分析日志文件:你应该找到发生了什么

不幸的是,玩吧!不支持Weblogic。

请参阅:

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

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

  • 应用Oracle修补程序使weblogic支持JPA2.0
  • 添加部署描述符属性以对web inf中的类解析进行优先级排序
  • 这两者都是微不足道的,播放文档可能会将weblogic 10标记为工作部署目标

    要修复#1,请打开以下窗口

    对于懒惰的读者,将此声明添加到wlserver/common/bin/commonv.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/commonv.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.xmlmyplayapp/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>
    
    
    真的
    
    构建web存档时,播放war会自动拾取war文件夹

    就这样


    我个人认为Play应该自己创建weblogic.xml,但从1.2.1开始就不是这样的,请使用playframework作为标记!我在页面上找不到这个信息。在这里,您只知道它是用weblogic以外的其他应用服务器测试的。您将在页面上看到,测试的服务器有:JBoss 4.2.x、JBoss 5.x、JBoss 6M2、Glasshfish v3、IBM Websphere 6.1、IBM Websphere 7、Geronimo 2.x、Tomcat 6.x、Jetty 7.x、Resin 4.0.5。。。你不会看到Weblogic。是的,但这只意味着它没有经过测试。这并不是说这不管用。在抱怨之前,你需要先尝试一下。请参阅我即将发布的有关此问题的帖子。