我們試圖在我們的JBoss 7.1.1-Final應用服務器中打包和部署GridGain 6作爲自定義靜態模塊。在本地運行時,配置似乎工作,網格作業由本地節點執行,但是當在遠程節點上執行作業時,我們會得到一個ClassNotFoundException,它似乎表明模塊代碼找不到包含在在這個JBoss實例中部署的EAR文件。將GridGain 6作爲自定義模塊部署在JBoss 7.1.1-Final中
Caused by: java.lang.ClassNotFoundException: com.our.company.CustomGridJob from [Module "com.gridgain:main" from local module loader @5e48a0e1 (roots: /path/to/jboss/modules)]
從它看起來像GridGain模塊試圖取消元帥它從網絡接收的序列化消息,並尋找類構造發起,它發送的工作初始調試。當同一個作業在本地執行時,我們假定序列化/取消編組部分不會發生,因爲沒有網絡可以遍歷,所以本地執行工作。
它正在尋找的類存在於部署到服務器的EAR中,因此它似乎是一個類加載可見性問題。是否有可能讓模塊「知道」部署到容器的代碼?如果是這樣,怎麼樣?
如果這種部署GridGain的方法是不可能的,那麼在EAR的/ lib目錄中,是否有其他方法可以簡單地將GridGain與我們的EAR部署打包在一起? (這會真的膨脹部署)。其他人如何在JBoss 7中部署GridGain 6?
任何意見讚賞。
謝謝。
我在jboss-deployment-structure.xml中玩過一段時間,但沒有得到任何工作,所以最終通過將所有GridGain jar放在EAR/lib中解決了這個問題 - 最直接的部署,儘管不是最有效的。當我得到更多時間時,我可能會重新訪問重新打包,這是減少部署應用程序大小的另一種方式。 – Joe 2014-10-09 23:43:29