ATG - 如何从基于GenericService的服务访问已部署的文件?

时间:2013-05-21 14:01:55

标签: atg

我有一个服务(GenericService的子类),它需要在运行时找到 deploy 目录[在应用程序服务器的安装目录下]的路径,而不需要对其进行硬编码;在我们日常工作的许多环境中,这条路径会有所不同。

我在JSP文件中发现了这个怎么做,下面给出了我需要的内容,但我找不到ServeLetContext:

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

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

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

但我没有回复上下文。

我们在JBoss 4.2上使用ATG 9.1。

我感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

任何实施GenericService的服务都可以访问getNucleus(),从而可以访问getRealPath(String str)

由于我不确定您为何需要使用context.getRealPath(String str),因此您应该注意,有时可能不适合您的需要。 For example如果您在.war中部署应用程序,则无法访问它。

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

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

它与环境无关,因为你不能在没有主文件夹的情况下运行ATG ......应该可以创造奇迹。