Я использую Spring-WS для создания веб-сервиса. В моем проекте я создал класс Helper
для чтения образца ответа и запроса XML-файла, который находится в моей папке /src/main/resource
.
Когда я тестирую свое приложение веб-сервиса «локально», я использую System.getProperty("user.dir")
для получения папки контекста приложения. Ниже приводится метод, который я создал в классе Helper
, чтобы помочь мне получить интересующий меня файл в моей папке ресурсов.
public static File getFileFromResources(String filename) {
System.out.println("Getting file from resource folder");
File request = null;
String curDir = System.getProperty("user.dir");
String contextpath = "C:\\src\\main\\resources\\";
request = new File(curDir + contextpath + filename);
return request;
}
Однако после «публикации» скомпилированного файла WAR в папке ../webapps
в каталоге Apache Tomcat я понимаю, что System.getProperty("user.dir")
больше не возвращает путь контекста моего приложения. Вместо этого он возвращает корневой каталог Apache Tomcat, как показано
C: \ Program Files \ Apache Software Foundation \ Tomcat 6.0 \ src \ main \ resources \ SampleClientFile
Кажется, я не могу найти никакой информации о получении корневой папки моего веб-сервиса. Я видел примеры в веб-приложении Spring, где я могу получить контекстный путь, используя следующее:
request.getSession().getServletContext().getContextPath()
Но в этом случае я использую веб-приложение Spring, в котором в запросе есть контекст сервлета. Но Spring-WS, моя точка входа - это конечная точка. Как я могу получить контекстный путь моего приложения веб-сервиса.
Я ожидаю контекстный путь чего-то вроде
C: \ Program Files \ Apache Software Foundation \ Tomcat 6.0 \ webapps \ clientWebService \ WEB-INF \ classes
Может ли кто-нибудь предложить способ достижения этого?