2010-07-11 112 views
2

我正在開發一個試圖讀取配置文件的portlet。我正在eclipse項目中開發它。我目前已將配置文件放置在我的WEB-INF文件夾(位於root/WEB-INF /)中,並且它的名爲config.properties。我如何使用我的java源代碼中的相對路徑來訪問這個文件? (這是根/ src目錄/包/ mysource.java)相對文件路徑問題

例如,

File myfile = new File("WHAT DO I PUT HERE/config.properties"); 

任何幫助,您可以提供將是巨大的!

回答

1

我會加載使用servlet上下文和它的getResourceAsStream()方法,而不是文件。像this ....

對不起,你說的portlet。那麼你需要javax.portlet.PortletContext

您可以從PortletSession獲取PortletContext。您可以從PortletRequest創建PortletSession。

+0

我正在爲liferay構建一個portlet,所以我不認爲我可以使用它? – ApacheImageUser 2010-07-11 18:24:29

+0

然後使用PortletContext。它也有一個getResourceAsStream方法。 – duffymo 2010-07-11 18:26:43

+0

如何調用getPortletContext()? – ApacheImageUser 2010-07-11 20:13:27

1

由於這是一個portlet,因此您可能需要使用PortletContext

雖然有一個getRealPath方法,但我會避免它,因爲它取決於門戶應用程序的部署方式 - 不能保證資源將映射到文件系統上的文件。去getResourceAsStream(或者,如果你必須的話,getResource)。

+0

如何聲明一個新的PortletContext? PortletContext context = ?? – ApacheImageUser 2010-07-11 20:14:01

+0

它由容器提供。你可以從'GenericPortlet',或'PortletSession',或'PortletRequest'或'PortletConfig'中獲得它。 – McDowell 2010-07-12 07:15:26

+0

我正在開發基於ZK框架的Java portlet。現在,我有一個從GenericForwardComposer擴展的類,所以我不知道如何獲得這些東西。 – ApacheImageUser 2010-07-14 19:58:43