对Openshift上的Play Framework 2应用进行故障排除

Openshift故障排除
 
使用“ 自己动手”应用程序类型,您实际上可以有很大的自由度来支持几乎可以在Linux机器上构建和运行的任何框架或服务器。 但是您必须做功课,并做一些研究。
因此,在本文中,我将向您展示一些我在使用Openshift和Play Framework方面学到的技巧。
欢迎发表评论,所以我希望您也可以向我提供更多提示,以帮助我们所有人在云上运行我们的应用程序。
为播放框架应用程序提供本机支持
 
目前,我们发现用于在openshift上部署Play 2.0应用程序的解决方案非常方便,但是我们可以做得更好。
问题是我们必须在本地编译该应用程序(发出play stage ),然后将30 MB的库推入Openshift。 理想的事情就是使用Play 1.x快速入门和适用于Play Framework 1.x的Openshift模块的最新版本进行的工作,就是上传我们的源代码,然后让Openshift下载并安装Play,编译我们的应用程序,然后启动它。
不幸的是,我们遇到了一些内存限制(似乎编译Play 2应用程序有点内存需求)最终导致了一些问题。 我们正在努力解决它们,但是也许,有了这些技巧,您可以帮助解决问题。
通过Openshift的开源和新的Origin livecd,我们可以使用更多工具来进一步研究正在发生的事情,我只是没有时间开始玩它。
因此,chat不休,让我们动手吧。
休斯顿,我们有一个问题
 
好的,您刚刚阅读了本指南,或者使用Play 2.0快速入门在Play Framework网络研讨会上按照我们的步骤进行了操作(实际上,其中一些技巧将有助于排除在Openshift上运行的任何应用程序的故障),并且出现了问题。
首先,看看日志。 刚发行
rhc app tail -a myapp -l mylogin@openshift.com -p mysecretpass
将该窗口保持打开状态,以后将变得非常方便。
然后,我们将SSH到我们的远程计算机中。 只是发出:
rhc app show -a myapp -l mylogin@openshift.com -p mysecretpass
你会得到像
Application Info
================
contactsFramework: diy-0.1Creation: 2012-04-19T14:20:16-04:00UUID: 0b542570e41b42e5ac2a255c316871bcGit URL: ssh://0b542570e41b42e5ac2a255c316871bc@myapp-mylogin.rhcloud.com/~/git/myapp.git/Public URL: http://myapp-mylogin.rhcloud.com/Embedded: None
在ssh后面的Git URL内容之后,登录到openshift机器:
ssh 96e487d1d4a042f8833efc696604f1e7@myapp-mylogin.rhcloud.com
(如果您像我一样懒惰,请继续投票以更轻松地将其转换为openshift )
打开另一个命令窗口,将ssh切换到openshift并运行诸如“ top”或“ watch -n 2 free -m”之类的内容来监视内存使用也是一个好主意。
排除播放故障
 
您知道一个古老的座右铭:“编写一次,到处运行”……好吧,它只是“应该”工作,但以防万一,您可以尝试使用与在openshift上运行的JDK版本相同的JDK版本来编译您的应用程序。
赶紧跑
java -version
java version "1.6.0_22"
OpenJDK Runtime Environment (IcedTea6 1.10.6) (rhel-1.43.1.10.6.el6_2-i386)
OpenJDK Server VM (build 20.0-b11, mixed mode)
并在您的盒子上安装相同的jdk版本。 然后编译您的应用并重新部署(您可以使用便捷脚本openshift_deploy
如果那不起作用,请尝试在Openshift上手动完成整个过程。 您应该执行以下操作:
# download play
cd ${OPENSHIFT_DATA_DIR} 
curl -o play-2.0.1.zip http://download.playframework.org/releases/play-2.0.1.zip
unzip play-2.0.1.zip
cd ${OPENSHIFT_REPO_DIR}#stop app
.openshift/action_hooks/stop#clean everything - watch for errors, if it fails retry a couple more times
${OPENSHIFT_DATA_DIR}play-2.0.1/play clean
如果您得到以下信息:
/var/lib/stickshift/0b542570e41b42e5ac2a255c316871bc/myapp/data/play-2.0.1/framework/build: line 11: 27439 Killed
这意味着它不幸失败了(这是我告诉过您的内存问题)
这是一个很糟糕的错误,您还会松开命令提示符。 只是盲目地输入“ reset”并按Enter,您将得到提示。
然后再试一次...
您可能还会收到以下消息:
This project uses Play 2.0!
Update the Play sbt-plugin version to 2.0.1 (usually in project/plugins.sbt)
这意味着您使用Play 2.0创建了该应用,现在正尝试使用其他版本进行编译。
只需更新project / plugins.sbt文件或下载适当的版本。
现在编译并上演您的应用程序。
#compile everything - watch for errors, if it fails retry a couple more times
${OPENSHIFT_DATA_DIR}play-2.0.1/play compile#stage - watch for errors, if it fails retry a couple more times
${OPENSHIFT_DATA_DIR}play-2.0.1/play stage
然后运行它(不要害羞,看看quickstart repo上的action hooks脚本 )。
target/start -Dhttp.port=8080 -Dhttp.address=${OPENSHIFT_INTERNAL_IP} -Dconfig.resource=openshift.conf
在https://myapp-mylogin.rhcloud.com上进行检查
如果一切正常,请使用ctrl-c停止它,然后运行:
.openshift/action_hooks/start
您应该在控制台中看到带有日志文件的应用程序
现在,您可以使用ctrl-d从ssh会话注销,然后发出:
rhc app restart -a myapp -l mylogin@openshift.com -p mysecretpass
你应该看到类似
Stopping play application
Trying to kill proccess, attempt number 1
kill -SIGTERM 19128
/var/lib/stickshift/0b542570e41b42e5ac2a255c316871bc/openbafici/repo/target/start "-DapplyEvolutions.default=true" -Dhttp.port=8080 -Dhttp.address=127.11.189.129 -Dconfig.resource=openshift.conf
Play server process ID is 21226
[info] play - Application started (Prod)
[info] play - Listening for HTTP on port 8080...
希望本技巧对您有所帮助。 正如我所说的,我很期待开始使用Openshift Origin livecd,然后再告诉您。
在此期间,我将陪伴您与老旧的Openshift Rocket Bear陪伴,我知道您也想念他,那么为什么不让他回来呢?
参考: 故障排除播放框架上Openshift 2个应用程序从我们JCG伙伴塞巴斯蒂安斯卡拉诺在享受乐趣与游戏框架! 博客。

翻译自: https://www.javacodegeeks.com/2012/05/troubleshooting-play-framework-2-apps.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/373100.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

关于更换头像的整个过程理解

之前我遇到一个问题,就是怎样修改头像,都没有更改,后来把某个参数置为null,就解决了问题,但是知其然还要知其所以然,现在还是着重去梳理整个流程 头像,需要关注的是3个变量: 本地地址…

Ajax与CustomErrors的尴尬

在ASP.NET程序中&#xff0c;为了给用户显示友好的错误信息&#xff0c;通常在web.config中进行如下的设置&#xff1a; <customErrors mode"RemoteOnly" defaultRedirect"/error/error.htm"> </customErrors> 但如果是一个ajax请求在服务端发…

JSF开发人员应该知道的5种有用方法

这篇文章的目的是总结一些JSF开发人员可以在日常工作中使用的便捷方法。 实用程序类是将所有方法放在一起的好地方。 我会称此类为FacesAccessor。 第一种方法可能是最常用的方法。 它以给定名称返回托管bean。 必须按faces-config.xml或注释注册该bean。 注入是好的&#xff0…

android项目编码规范,Android 项目规范

Android 项目规范本文档的目的是定义项目规范。这些应遵循整个 Android 项目以帮助我们保持整洁和统一的代码库。 &#x1f642;

Java创建WebService服务及客户端实现

简介 WebService是一种服务的提供方式&#xff0c;通过WebService&#xff0c;不同应用间相互间调用变的很方便&#xff0c;网络上有很多常用的WebService服务&#xff0c;如&#xff1a;http://developer.51cto.com/art/200908/147125.htm&#xff0c;不同的语言平台对…

01-17权限管理

管理页面&#xff1a; <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns"http://www.w3.org/1999/xhtml"><head><meta http-equi…

Java静态方法可能会产生代码异味

代码气味的定义 &#xff08;来自维基百科&#xff09;&#xff1a; “程序源代码中任何可能表明存在更深层问题的症状。” 在Java中&#xff0c; 静态方法允许您在“类范围”内执行代码&#xff0c;而不是像成员方法这样的实例范围。 这意味着&#xff0c;它们依赖于类级别的变…

android json 解析图片,JSON解析并获取android中的图像

我想解析包含字符串和图像的JSON对象。我的代码正在工作&#xff0c;但它加载图像太慢。我想加载另一个asynctask或服务的图像&#xff0c;以减少加载时间。我怎样才能做到这一点&#xff1f;哪一个是最好的方法使用asynctask或服务&#xff1f;这里是我的代码JSON解析并获取an…

Node Express4.x 片段视图 partials

1.在Express 4.x使用片段视图&#xff0c;需要引入partials模块 步骤&#xff1a; 1.在全局中安装express-partials模块&#xff1a; 2.在本地模块中安装express-partials,将模块安装到package.json中&#xff1a; 3.在入口文件(如&#xff1a;app.js)中引入模块&#xff1a; v…

bzoj1690:[Usaco2007 Dec]奶牛的旅行(分数规划+spfa判负环)

PS:此题数组名皆引用&#xff1a;戳我 题目大意&#xff1a;有n个点m条有向边的图&#xff0c;边上有花费&#xff0c;点上有收益&#xff0c;点可以多次经过&#xff0c;但是收益不叠加&#xff0c;边也可以多次经过&#xff0c;但是费用叠加。求一个环使得收益和/花费和最大&…

安全密码存储–请勿做的事和Java示例

安全存储密码的重要性 作为软件开发人员&#xff0c;我们最重要的职责之一就是保护用户的个人信息。 没有我们应用程序的技术知识&#xff0c;用户别无选择&#xff0c;只能相信我们正在履行这一责任。 令人遗憾的是&#xff0c;在密码方面&#xff0c;软件开发社区的记录不一。…

红米note4x Android7,红米Note4X能升级安卓7.0吗?红米Note4X如何升级Android7.0?

欢迎来到PPL网站的行业资讯知识分类&#xff0c;你现在观看的这篇文章要和大家分享的是关于红米Note4X能升级安卓7.0吗&#xff1f;红米Note4X如何升级Android7.0&#xff1f;的一些相关内容&#xff0c;希望大家能够感兴趣&#xff0c;并且希望我们能够帮助到你&#xff01;在…

java基础----数字签名算法的介绍

数字签名&#xff08;又称公钥数字签名&#xff09;是一种类似写在纸上的普通的物理签名&#xff0c;但是使用了公钥加密领域的技术实现&#xff0c;用于鉴别数字信息的方法。关于数字签名的介绍&#xff0c;可以参见百度百科&#xff1a;http://baike.baidu.com/view/7626.htm…

Android宫格自动换行,九宫格视图的布局及展示(相册选择)

上周一个朋友带的项目出了点问题&#xff0c;招的ios开发人员在实现选取相册图片后用九宫格的样式展示时遇到了瓶颈&#xff0c;花了将近2周都没有解决。后来在跟我交流的过程中他把项目的图片发给我看了下&#xff0c;看完我就笑了&#xff0c;这就只是个算法的问题&#xff0…

具有LCS方法的通用文本比较工具

常见的问题是检测并显示两个文本&#xff08;尤其是几百行或几千行&#xff09;的差异。 使用纯java.lang.String类方法可能是一种解决方案&#xff0c;但是对于此类操作最重要的问题是&#xff0c;“性能”将不能令人满意。 我们需要一种有效的解决方案&#xff0c;其可能具有…

eclipse 开发 scala

(环境&#xff1a;jdk1.7,scala插件scala-2.1.1.2-site.zip) 1:下载scala插件 http://download.scala-ide.org/sdk/helium/e38/scala211/stable/site2&#xff1a;解压到本地将这两个文件里的jar包全部复制到eclipse的安装目录对应的文件夹里三&#xff1a;重启eclipse这时会提…

关于这个博客

博客主要打算写关于游戏制作方面的内容&#xff0c;包括directx&#xff0c;实时图形知识等等方面的内容&#xff0c;作为一个渣暂时都是一些简单的东西&#xff0c;努力找工作中...... 开这个博客主要目的是为了对自己做的事有个记录吧&#xff0c;并且关于directx方面的东西本…

Quartz Scheduler失火指令说明

有时&#xff0c;Quartz无法在您需要的时间运行您的工作。 这有三个原因&#xff1a; 所有工作线程都忙于运行其他作业&#xff08;可能具有更高的优先级&#xff09; 调度程序本身已关闭 该作业是在过去的开始时间安排的&#xff08;可能是编码错误&#xff09; 您可以通过…

android 代码获取屏幕图像,安卓获取屏幕以及获得像素点 ~ 大树洞

由于一些不可告人的需求&#xff0c;所以开始寻找各种可以实现安卓实时获得屏幕上某个像素点的功能首先&#xff0c;将需求进行拆解&#xff0c;分别为1、获得屏幕2、获得屏幕上一个像素点获得屏幕获得屏幕分为比较多种的方式&#xff0c;在以前大致分为adb screencap 获取当前…

海量端口扫描工具masscan

海量端口扫描工具masscanmasscan号称是互联网上最快的端口扫描工具&#xff0c;可以6分钟扫描整个互联网&#xff0c;每秒可以发送一百万个数据包。为了提高处理速度&#xff0c;masscan定制了TCP/IP栈&#xff0c;从而不影响本地其他TCP/IP的数据传输。masscan提供较为丰富的选…