2010-07-11 113 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