我剛剛開始從Java SE轉換到EE,我想知道以下問題的最佳做法。將Java SE應用程序作爲服務集成到Java EE應用程序最佳實踐
我有一個我想在網上提出的Java SE應用程序。 Web/EE部分已經使用Windows7/Apache Tomcat和標準servlet/JSP進行設置。對於Java應用程序來說,它確實是一個相互依存的源文件的集合。
我的計劃是創建一個可執行的.jar文件,該文件將由servlet調用,輸出流和過濾的錯誤流將被移交給在線用戶。
,我心目中是(按優先順序排列)的因素:
- 將.jar調用的開銷
- 因此,高流量處理,雖然它是一個學術工具
- 安全性作爲調用與結構化用戶輸入是 作爲命令行參數傳遞給.jar(我正在說腳本 注入類型漏洞作爲輸入)
- 模塊化作爲Java應用程序可能會經歷幾個版本,所以如果有應用程序和Web應用程序之間的簡單耦合我會採取它沒有太多的開銷上面
所以我的問題是該計劃是否上述規定,這樣做的正確方法?其他人也可以考慮我應該關注的其他因素嗎?
任何輸入或指針將非常感激!
編輯:: 所以之前我做了與WIN7/Apache的HTTP/PHP這個項目中,PHP將產生與用戶輸入一個文件名,並用一個exec函數調用和文件把它送上jar程序名稱作爲命令行參數。該程序將生成一個類似的命名輸出文件,PHP將獲取該輸出文件的內容並將其返回給用戶。問題是每個exec調用都會實例化一個新的JVM實例,如果這個站點有很多用戶,那麼服務器會抓取/崩潰來處理這些請求。這就是我轉移到本地Java服務器的原因。我在這裏也有同樣的想法,除了我希望程序作爲一個單元(jar),以便任何新的修訂更容易部署。現在這是一個初步的計劃。這就是爲什麼我的問題要求在這種情況下如何去做的最佳實踐。
聽起來完全瘋了。 – 2014-11-06 04:23:04
@Christopher我對Java EE來說是全新的。這在我所描述的環境中是不可能的?任何投入將不勝感激。 – suv 2014-11-06 05:50:03
你的用例似乎沒有任何意義:你想要一個可執行的JAR文件並在一個單獨的進程中運行它,但是你想要把servlet的InputStream(從客戶端)連接到外部應用程序的' 'stdin'和外部應用程序的'stdout'並將其傳遞到servlet的'OutputStream'(回到客戶端)?這似乎是一個不應該存在的醜陋混亂。您是否試圖製作一個命令行程序並使其可通過Internet運行? – 2014-11-06 13:17:34