0

我有一个服务(GenericService 的子类),它需要在运行时找到部署目录的路径[在应用程序服务器的安装目录下],而不需要对其进行硬编码;这条道路因我们每天工作的许多环境而异。

我从 JSP 文件中找到了如何执行此操作,以下内容正是我需要的,但我找不到 ServeLetContext:

ServletContext context = session.getServletContext();
String path = context.getRealPath("/my/path");

但是,我在服务中没有请求会话对象,是吗?我一直在看

getAdminServlet().getServletConfig().getServletContext().getRealPath("/my/path");

但我没有得到背景信息。

我们在 JBoss 4.2 上使用 ATG 9.1。

我感谢任何帮助。

4

1 回答 1

0

任何实现的服务GenericService也都可以访问getNucleus(),反过来又可以让您访问getRealPath(String str).

由于我不确定您为什么需要使用context.getRealPath(String str),您应该注意在某些情况下它可能不适合您的需求。例如,如果您将应用程序部署在 .war 中,您将无法访问它。

也就是说,这可能是一种更简单的方法,它不关心您将其部署到哪个环境:

private String getBasePath() {
    String basePath = DynamoEnv.getProperty("atg.dynamo.server.home");
    return basePath;
}

它与环境无关,因为没有主文件夹就无法运行 ATG……应该会产生奇迹。

于 2013-05-27T10:22:31.507 回答