url = новый java.net.URL () - PullRequest
       2

url = новый java.net.URL ()

0 голосов
/ 15 января 2011

url = new java.net.URL(s) не работает для меня.

У меня есть строка C:\apache-tomcat-6.0.29\webapps\XEPServlet\files\m1.fo, и мне нужно создать ссылку и передать ее в мой форматер для вывода, но получен неправильный URL-адрес.Кажется, что это не делает мою строку для URL.Также хочу отметить, что файл m1.fo находится в папке files, в моем webapp \ product \, и я дал полный путь к строке, например: getServletContext().getRealPath("files/m1.fo").Что я делаю не так?Как я могу получить URL-ссылку?

Ответы [ 4 ]

5 голосов
/ 15 января 2011

Можно получить URL из пути к файлу с помощью java.io.File API:

String path = "C:\\apache-tomcat-6.0.29\\webapps\\XEPServlet\\files\\m1.fo";
File f = new File(path);
URL url = f.toURI().toURL();
1 голос
/ 20 января 2011

Не желательно писать файл: ///. Действительно, это работает в системе Windows, но в Unix - были проблемы. Вместо использования

myReq.put("xml", new String []{"file:" + System.getProperty("file.separator") + 
                        getServletContext().getRealPath(DESTINATION_DIR_PATH) + 
                        System.getProperty("file.separator") + xmlfile}); 

Вы можете написать

myReq.put("xml", new String [] {getUploadedFileURL (xmlfile)} );

, где

public String getUploadedFileURL(String filename) {
    java.io.File filePath = new java.io.File(new 
            java.io.File(getServletContext().getRealPath(DESTINATION_DIR_PATH)), 
            filename);

    return filePath.toURI().toURL().toString();
1 голос
/ 15 января 2011

Попробуйте: file: /// C: /apache-tomcat-6.0.29/webapps/XEPServlet/files/m1.fo

0 голосов
/ 15 января 2011

Путь к файловой системе не является URL-адресом. URL будет нуждаться в префиксе протокола для одного. Для ссылки на файловую систему используйте «file:» перед вашим путем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...