我构建了一个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}
这是我的控制器代码:
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 :(得分:9)
Weblogic 10是一个完全兼容的J2EE 5应用服务器,因此它与JPA 1.0捆绑在一起。
在weblogic上运行Play有两个小问题。
两者都很简单,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文件夹。
就是这样!
我个人认为Play应该创建weblogic.xml本身,但这不是1.2.1的工作方式
答案 1 :(得分:0)
不幸的是,我既没有知道weblogic,也没有时间调查你有趣的问题。我只能给你一些提示我会做什么:
尝试将应用程序与调试器连接,或者如果这不起作用,请检查代码并使用大量日志语句构建自己的版本。 据我所知,每个请求都将由ActionInvoker处理。调用。看看参数是如何进入的。另一点是路由器,它仍然有很多跟踪日志。所以也许你先开始让整个东西在跟踪级别上运行。也许这会给你一些提示,在哪里可以更详细地查看。
要做到这一点,请先使用干净的应用程序,不要使用配置技巧,特别是不要在ROOT-Context中运行它。只需创建play war myapp -o myapp.war --zip
并部署它(不要忘记--zip)。然后分析日志。
好看。
尼尔斯
答案 2 :(得分:0)
我将Play应用程序(播放1.1.1)部署到Websphere 6.1,我遇到了一些问题。不确定你有同样的问题,但有(希望它可以帮助你):
1- JDK版本:我的“play war xxxx --zip”使用JDK 1.6,而Websphere 6.1使用JDK 1.5。当我尝试启动我的webapp时,抛出了UnsupportedClassVersionException。我使用正确的JDKetvoilà再生我的war文件!
2-将战争应用程序部署到Websphere时,可以指定上下文的名称。我不知道如何使用Weblogic,但你设置了正确的值吗?
正如Niels所说,分析日志文件:你应该发现会发生什么!
答案 3 :(得分:-2)
不幸的是,玩!不支持Weblogic 请参阅:http://www.playframework.org/documentation/1.2/deployment