2010-10-27 85 views
4

我建了一个Play应用程式,并尝试使用下面的命令在WebLogic部署:游戏框架的WebLogic 10.3.3.0部署

play war -o myApp myApp 

后来我刚刚部署的展开战争目录到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} 

这里是我的控制器代码:

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

} 

预先感谢任何帮助。

+0

请使用playframework的标签! – niels 2010-10-28 17:29:51

回答

0

不幸的是,我没有weblogic知道,也没有时间调查你有趣的问题。我只能给你一些提示,我会做什么:

尝试连接应用程序与调试器,或者如果这不起作用检查代码并建立自己的版本,并与许多日志语句。 据我所知,每个请求都会由ActionInvoker处理。调用。看看参数是如何进入的。另一点是路由器,它仍然有很多跟踪日志。因此,也许你先从头开始,让整个东西在跟踪级别上运行。也许这给你一些提示的更多细节。

要做到这一点,从一个干净的应用程序开始,不做任何配置技巧,特别是不要在ROOT-Context中运行它。只需创建play war myapp -o myapp.war --zip并将其部署(请勿忘记--zip)。然后分析日志。

好看。

尼尔斯

+0

谢谢尼尔斯,我会尽力的。 – cored 2010-10-28 19:04:30

0

我部署我的Play应用程式(玩1.1.1)到WebSphere 6.1和我遇到了一些问题。不知道你有同样的问题,但在这里有(希望它可以帮助你):

1- JDK版本:我的“玩战争xxxx - zip”使用JDK 1.6,和Websphere 6.1使用JDK 1.5。当我尝试启动我的Web应用程序时,抛出了UnsupportedClassVersionException。我使用正确的JDK etvoilà重新生成了我的战争文件!

2-将战争应用程序部署到Websphere时,可以指定上下文的名称。我不知道如何使用Weblogic来做到这一点,但是您是否设置了正确的值?如Niels所说,分析日志文件:你应该找到会发生什么!

-2

不幸的是,玩!不支持Weblogic。
请参阅:http://www.playframework.org/documentation/1.2/deployment

+0

我在页面上找不到此信息。在那里,您只有与除weblogic之外的其他应用程序服务器一起测试的信息。 – niels 2011-04-28 10:20:01

+0

您将在页面上看到所测试的服务器是: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。 – 2011-04-28 12:33:13

+0

是的,但这只意味着它没有经过测试。它并不是说它不工作。 – niels 2011-04-29 18:54:05

9

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

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

  1. 申请一个Oracle的补丁有weblogic的支持JPA 2.0
  2. 添加部署描述符属性类的分辨率从WEB-INF优先

两者都是琐碎和播放文件也许应该纪念的WebLogic 10作为工作部署目标。

修复#1,开放以下oracle link

对于懒惰的读者,在wlserver的/通用/斌/ 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的/通用/斌/ 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,创建在以下位置myplayapp /战争/ WEB-IN文件的weblogic.xml F/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归档建立时,会自动通过剧战回升。

就是这样!

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