我构建了一个 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 上运行有两个小问题。
两者都是微不足道的,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/