Как получить путь веб-контекста в весеннем проекте MVC + Maven? - PullRequest
0 голосов
/ 19 ноября 2018

Я использовал tomcat7-maven-plugin, чтобы запустить мой проект Spring MVC, и попытался получить полный путь в контроллере Spring ниже.

 String path = this.getClass().getClassLoader().getResource("").getPath();

Это даст мне путь, как показано ниже.

C:/Users/xxxxx/Documents/xxx/apache-tomcat-8.5.31/webapps/showcase/WEB-INF/classes/

Тогда я могу получить контекстный путь по fullPath.split("/WEB-INF/classes/"). На самом деле это не имеет ничего общего с springmvc, любое веб-приложение java может получить контекстный путь, как этот, если не может получить servletContext.

Но если я запускаю проект в режиме разработки с помощью ' mvn tomcat7: run '. Это даст мне путь, как показано ниже.

C:/git/xxxxx/showcase/target/classes

Тогда я не могу получить контекстный путь по этому URL. Я хочу знать, где находится корневой контекст, когда я запускаю проект maven и как его получить? Спасибо.

1 Ответ

0 голосов
/ 19 ноября 2018
public static File upload(MultipartFile file, HttpServletRequest request, boolean file_name, String upload_folder) {
        String filename = null;
        File serverFile = null;
        try {
            String applicationpath = request.getServletContext().getRealPath("");
            filename = file.getOriginalFilename();
            byte[] bytes = file.getBytes();
            String rootPath = applicationpath;
            File dir = new File(rootPath + File.separator + upload_folder);
            if (!dir.exists())
                dir.mkdirs();
            serverFile = new File(dir.getAbsolutePath() + File.separator + filename);
            BufferedOutputStream stream = new BufferedOutputStream(new FileOutputStream(serverFile));
            stream.write(bytes);
            stream.close();
            return serverFile;
        } catch (Exception e) {
            serverFile = null;
        }
        return serverFile;
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...