對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.pswp.cn/news/373100.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/373100.shtml
英文地址,請注明出處:http://en.pswp.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提供較為豐富的選…