看来Tomcat没有为我们提供属性变量(例如“
webroot”)来引用我的应用程序上下文。因此,我的解决方案是在Servlet上下文侦听器中注册这样的属性。
我的代码:
public class WebAppPropertiesListener implements ServletContextListener{ @Override public void contextInitialized(ServletContextEvent sce) { String rootPath = sce.getServletContext().getRealPath("/"); System.setProperty("webroot", rootPath); } ... }并在触发Spring上下文之前在web.xml中添加侦听器
<listener> <listener-class>com.iportal.util.WebAppPropertiesListener</listener-class></listener><listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener>
然后将属性放在Hsqldb设置中。
portal.jdbc.url=jdbc:hsqldb:file:${webroot}WEB-INF/classes/data/mydb希望这对可能遇到相同问题的人有所帮助。



