【发布时间】:2015-09-09 12:43:32
【问题描述】:
我构建 webApp 。当我从 Eclipse 运行应用程序时,一切正常。现在我构建 WAR 文件,放入 tomcat 根目录,并且我想将我所有的系统属性放入 tomcat 中的 context.xml 中。然后,当应用程序启动时,context.xml 中的值被读取并在应用程序中使用。 问题是我不知道如何在我的 web 应用程序中从 context.xml 获取值? 这是上下文:
<?xml version="1.0" encoding="UTF-8"?>
<Context path="" docBase="fileupload.war" privileged="true" antiResourceLocking="false" antiJARLocking="false">
<Resource
mail.smtp_server = "127.0.0.1"
mail.smtp_username = "no-reply@gmail.rs"
mail.mailTo = "test@gmail.com"
rootFolder = "D:/project/"
rootFolderBackup = "D:/project/Backup/"
/>
这里我想从 context.xml 中获取一个值:
@RequestMapping(value="api/files")
public class FileController {
final static Logger logger = Logger.getLogger(FileController.class);
@Autowired
ApplicationContext applicationContext;
private String mailTo;
private String sender;
private String rootFolder = "";
private String rootFolderBackup = "";
@PostConstruct
private void init(){
try {
InitialContext ic = new InitialContext();
Context xmlContext = (Context) ic.lookup("java:comp/env"); // thats everything from the context.xml and from the global configuration
DataSource myDatasource = (DataSource) xmlContext.lookup("rootFolder");
} catch (NamingException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
这是常见错误:
Name [rootFolder] is not bound in this Context. Unable to find [rootFolder].
我尝试了一些我在网上找到但不起作用的解决方案......
我的 context.xml 文件在 C:\tomcat-7.0\conf\Catalina\localhost ,war 文件在 C:\tomcat-7.0\webapps
【问题讨论】:
标签: java xml spring tomcat web-applications