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

对Openshift上的Play Framework 2应用进行故障排除相关推荐

  1. openshift s2i_对Openshift上的Play Framework 2应用进行故障排除

    openshift s2i Openshift故障排除   使用" 自己动手"应用程序类型,您实际上可以有很大的自由度来支持几乎可以在Linux机器上构建和运行的任何框架或服务器. ...

  2. dell笔记本耳机怎么设置_对戴尔系统上的耳机/麦克风插孔问题进行故障排除

    文章内容 解决方案 本文提供有关如何对戴尔系统上的耳机/麦克风插孔问题进行故障排除的信息. 耳机插入OptiPlex系统的前部音频插孔中后,系统上的后部音频插孔被禁用. 根据设计,如果设备通过前部音频 ...

  3. 使用Quarkus在Openshift上构建微服务的快速指南

    点击蓝色"程序猿DD"关注我 回复"资源"获取独家整理的学习资料! [重磅]到底是什么野生海鲜美味,惹得人们都往泥瓦匠老家买? 作者 | 康仔 来源 | 公众号 ...

  4. 给部署在openshift上的WordPress添加wptouch插件

    因为自己的另一个博客(专门用来记录非技术的东西)是在openshift上搭的一个WordPress,前几天偶然用手机访问别人的一个wp博客,发现效果非常好,就想用到自己的博客上,搜了下发现是wptou ...

  5. openshift 部署_在OpenShift上部署Java EE微服务

    openshift 部署 我昨天用WildFly Swarm在博客上发布了有关简单JAX-RS微服务的博客. 您学习了如何使用Maven构建所谓的"胖子",还使用Maven Doc ...

  6. openshift_在OpenShift上扩展Java EE微服务

    openshift 这个小系列的前两个部分介绍了如何使用WildFly Swarm构建一个小型的JAX-RS服务并将其打包到Docker映像中 . 您学习了如何将此示例部署到OpenShift ,现在 ...

  7. openshift_在OpenShift上托管的WildFly实例上进行Arquillian测试

    openshift 技术提示#54解释了如何为现有Java EE项目启用Arquillian. 在该技巧中,测试是针对本地安装的WildFly服务器运行的. 如果此WildFly实例在OpenShif ...

  8. openshift k8s_带有DIY的Openshift上的Spring Boot / Java 8 / Tomcat 8

    openshift k8s DIY盒带是一种实验性盒带,提供了一种在OpenShift上测试不受支持的语言的方法. 它提供了最小限度的自由形式的支架,将墨盒的所有细节留给了应用程序开发人员 . 这篇博 ...

  9. openshift_在WildFly和OpenShift上的WebSocket聊天

    openshift 聊天是解释WebSocket的最典型示例之一. 它是一个相当常用的界面,可以很容易地解释WebSocket的基本概念. 当然,Java EE 7 WebSocket也有一个, 在这 ...

最新文章

  1. jenkins 邮件配置 二 ***
  2. java sdf.parse_用DateFormat的parse方法验证字符串是否是日期的问题
  3. “该文件包含不能在当前代码页(936)中表示的字符,请将该文件保存为 Unicode 格式以防止数据丢失”
  4. linux非root安装go,linux – go install总是使用GOROOT / bin而不是GOPATH
  5. if you miss it, you can hope for future
  6. final 字符常量——确定一个值后该值无法改动,使变量变字符常量
  7. 练习一:GitHub Desktop下载及使用
  8. navicate连接Linux下mysql慢,卡,以及mysql相关查询,授权
  9. 基于PaaS平台的多应用自集成方案之公共数据集成
  10. 解决org.apache.hadoop.io.nativeio.NativeIOException: 当文件已存在时,无法创建该文件。
  11. ES6 变量的6种方式
  12. Android Studio 0.1 gradle home的问题
  13. 论SetItemData和GetItemData
  14. Smart Panels精彩系列面板_备份和恢复的具体步骤(2种方法)
  15. 遗传算法matlab_通俗易懂地解释遗传算法
  16. xmta温度控制仪说明书_XMT温度控制仪说明书
  17. 闲鱼搜索相关性——体验与效率平衡的背后
  18. 【Unity】Unity下载器下载不下IOS/Android等模块的解决办法
  19. 大数据营销方案的分析处理
  20. 微服务为什么要用到 API 网关?

热门文章

  1. 使用junit进行单元测试_使用JUnit对ADF应用程序进行单元测试
  2. java 验证码透明背景_Java中的证书透明度验证
  3. jdk10与jdk9的区别_JDK 8与JDK 10:三元/拆箱的区别
  4. java如何避免注释重复_Java 8中的可重复注释
  5. java调用命令行命令_Java命令行界面(第4部分):命令行
  6. java platform_Java Platform Module系统中的可选依赖项
  7. jgroups_JGroups:无需额外基础架构的领导人选举
  8. 为什么awt_为AWT的机器人创建DSL
  9. junit junit_使用junit做其他事情
  10. java 打开gc日志_在运行时打开GC日志记录