2015-01-31 78 views
6

你知道Netbeans如何決定使用哪個文件名作爲應用程序範圍的資源:sun-resources.xmlglassfish-resources .xml? 該名稱是可配置的還是硬編碼的?NetBeans - 「sun-resources.xml」與「glassfish-resources.xml」

據我瞭解,爲了向後兼容,GlassFish支持sun-resources.xml。但根據「應用程序部署指南」,首選文件名是glassfish-resources.xml

我使用GlassFish 4.1運行相對較新版本的Netbeans - 8.0.2,但生成sun-resources.xml文件。這看起來很奇怪和令人困惑。

另一方面,我看到有人遇到麻煩glassfish-resources.xmlhttps://netbeans.org/bugzilla/show_bug.cgi?id=243034。 而且推薦的解決方案是將重命名爲glassfish-resources.xmlsun-resources.xml - 與GlassFish建議相矛盾。

問候

+1

開始賞金,我也想明白這一點。 – 2016-05-12 04:45:01

回答

2

首先,讓我們設置的期望,在NetBeans源,Glassfish is supposed to be able to use both files。服務器配置通常打包在CommonServerSupport類中。

此外,它不可配置。

從我在Netbeans源代碼中可以看到的,glassfish-resource.xml文件永遠不會被使用。這裏的原因:

  1. 默認設置應該是glassfish-resource.xml的基礎上,我可以從deployResources()方法推斷。這種方法又取決於registerResourceDirs()

  2. succeeded永遠不會更新到true,表明glassfish-resource.xml已成功創建,應該使用的問題開始。

  3. 那麼,什麼最終情況是,deployResources()嘗試使用sun-resources.xml無論如何,作爲後備:

    if (!usedNewName) { 
        // try to use sun-resources.xml 
        registerResourceDir(resourceDir,dm,"sun-resources"); // NOI18N 
    } 
    

我應該指出,這個錯誤是在NB 8.0中引入的; 7.3 doesn't appear to have the same problem

0

爲了記錄,我在碰到NetBeans 8.2和Glassfish 5.0的AffableBean教程時遇到了同樣的問題。

看來,glashfish-resources.xml文件已被默認創建在web/WEB-INF文件夾下。 然後Glassfish在部署階段忽略它。

通過「文件」窗口將文件移動到/ setup目錄下解決問題,資源和池在通過NetBeans啓動部署後創建。