2014-02-13 38 views
4

嗨,我有一個簡單的jar,像服務器一樣工作,我可以將它上傳到我的OpenShift帳戶並運行它?如何順便?非常感謝提前。OpenShift上傳jar並運行它

+1

可能會有所幫助 - http://dmly.github.io/blog/2013/05/01/diy-java-app-server-on-openshift-so-far-so-good/ –

回答

1

您可能需要提供一些更多詳細信息。如果你想上傳一個.jar文件並運行它,你需要將它添加到你的git倉庫中,然後創建一個運行.jar文件的動作鉤子(java -jar /path/to/file.jar &)然後做一個git推。如果要將.war Web應用程序的jar文件包括在內以便使用,可以查看openshift網站的知識庫文章部分,瞭解如何執行此操作的示例。

+0

感謝您的回覆。我試圖做的是上傳一個.jar並運行它。我已經設法使用git將jar推送到openshift目錄。我也設法使用ssh遠程客戶端(例如PuTTY)運行jar,但我的客戶端無法連接到服務器,不知道爲什麼..當我嘗試使用服務器套接字創建套接字時,出現EOFException (在openshift上運行的那個) – TiagoM

1

只有特定IP上的端口8080暴露於外部世界。檢查環境變量的文檔,例如${OPENSHIFT_DIY_IP}${OPENSHIFT_DIY_PORT}。 (注意公衆通過端口80連接,但它們連接到openshift基礎結構,轉發到在端口8080上運行的應用程序。)

將碼頭服務器作爲jar運行的示例在https://stackoverflow.com/a/33114072/329496中給出,它構建WAR文件然後有一個啓動腳本,它運行jetty作爲JAR,使用這些環境變量分配主機和端口。

說實話,如果你正在構建一個JAR並將其推送到服務器,那麼你可以使用Amazon Web Services來獲得一個沒有任何額外附加功能的主機。 OpenShift是PaaS(平臺即服務),而Amazon Web Services則是IaaS(基礎設施即服務)。如果你所需要的只是linux和java,那麼任何IaaS都可以很好地支持它。他們對原始linux虛擬機的限制也比較少,比如可以在80端口上運行。作爲一個例子,我用來構建JAR以在OpenShift上運行,但是他們沒有完全支持websockets(你必須使用高這是許多公司Web代理所不能接受的)。所以我轉向AWS,很容易讓事情在那裏運行。

+0

即使使用完整的VM也可能太多;您可以在託管Docker容器中運行JAR https://en.wikipedia.org/wiki/Docker_(software)。想要看看用Docker運行jar是多麼容易,只需快速瀏覽一下這個擁有「src/main/docker/Dockerfile」的頁面,這是啓動JAR文件所需的全部內容。然後,如果你谷歌「碼頭託管」,你會看到主機應用程序的大量選項。 – simbo1905