Java 无法从Spring启动控制器获取web.xml中的上下文参数
我有一个简单的webapp,它使用springboot和web 我有一个web.xml文件Java 无法从Spring启动控制器获取web.xml中的上下文参数,java,xml,spring,spring-mvc,servlets,Java,Xml,Spring,Spring Mvc,Servlets,我有一个简单的webapp,它使用springboot和web 我有一个web.xml文件 src/main/webapp/WEB-INF包含如下上下文参数 <context-param> <description>Directory containing the configuration files</description> <param-name>confDir</param-name> <para
src/main/webapp/WEB-INF
包含如下上下文参数
<context-param>
<description>Directory containing the configuration files</description>
<param-name>confDir</param-name>
<param-value>/opt/rasdaman/etc/</param-value>
</context-param>
但是当我试图获取参数时,它返回null
servletContext.getInitParameter("confDir");
当我试图获得servletContext的真实路径时
servletContext.getRealPath(File.separator);
它回来了
"..../src/main/webapp/"
如何在web.xml中获取配置变量
谢谢,我自己没有试过,但我自己没有试过。如果让控制器实现ServletContextAware,我认为可以从以下位置获取上下文参数: 这个想法是
public class MyCoolController implements ServletContextAware {
@Override
setServletContext(ServletContext servletContext) {
String confDir = servletContext.getInitParameter("confDir");
}
}
试一试因为问题是我使用了带jar的部署Spring Boot而不是war,所以无法从web.xml读取
接下来更改为war并使用tomcat EE正常部署为什么不将您的参数放入属性文件中?它是一个使用web.xml配置的遗留源,因此我无法移动到其他文件。您是否将应用程序部署为war文件?它是一个jar文件,因为Spring启动时像此公共静态void main(字符串[]args)一样启动{ApplicationContext app=SpringApplication.run(ApplicationMain.class,args);您可能应该看看这一点,然后我尝试更改为war并为maven添加依赖项,但对web.xml中的配置变量仍然为null。打包war时,您是否在相应目录中的war文件中看到您的web.xml?
public class MyCoolController implements ServletContextAware {
@Override
setServletContext(ServletContext servletContext) {
String confDir = servletContext.getInitParameter("confDir");
}
}