2010-10-27 33 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