Я использую 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
Может ли кто-нибудь предложить способ достичь этого?