Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > недоступный ресурс


Автор: Cuthbert 3.11.2008, 13:17
Всем доброе время суток.)

при построении сайта столкнулся с проблемой:
пользователь через форму делает upload файла(изображения) на сервер. сервер его обрабатывает и сохраняет в нужную мне папку, при этом имя, данное файлу, сохраняет в базе данных.
после того, как пользователь отправил картинку, он пересылается на страницу, на которой вытягивается имя скаченного файла из базы, составляется адрес и картинка показывается пользователю.

Проблема:
после направления на ту последнюю страницу изображение не показывается, типа ресурс недоступен...
если сервер перезапустить, то та же последовательность действий начиная с вытягивания имени из базы и заканчивая показом картинки приводит к успеху и все работает отлично

то есть сразу после upload'а ресурс недоступен, после перезапуска сервера - доступен

в чем дело?

Автор: ynblpb 3.11.2008, 13:59
Вы используете ORM?

Автор: Cuthbert 7.11.2008, 19:07
что это?

Автор: garbuz 7.11.2008, 19:19
http://ru.wikipedia.org/wiki/ORM
Одним из ORM фреймворков, часто используемых в java, является Hibernate. Вы работаете с хибернейтом или с чистым JDBC?

Автор: v2v 7.11.2008, 21:39
ORM тут не причём, 
- проверьте ссылку которую сгенерил сервер в обоих случаях,
- проверьте лежит ли ващ загруженный файл в папке на которую указывает ссылка в первом случае.

Автор: garbuz 7.11.2008, 22:15
Цитата(Cuthbert @  3.11.2008,  13:17 Найти цитируемый пост)
то есть сразу после upload'а ресурс недоступен, после перезапуска сервера - доступен

Может просто файл блочится, может что-где забываете?

Автор: Cuthbert 7.11.2008, 22:52
Цитата

Вы работаете с хибернейтом или с чистым JDBC

Нет, чистый JDBC.
Код

Class.forName("com.mysql.jdbc.Driver");

Connection conn = DriverManager.getConnection(url, user, pass);

Statement st = conn.createStatement();

...


Цитата

- проверьте ссылку которую сгенерил сервер в обоих случаях,

Ссылка на картинку в обоих случаях одна и та же, генерится из некоей постоянной части типа "http://localhost:8084/pics/" и имени файла, записанного в таблицу БД.

Цитата

- проверьте лежит ли ващ загруженный файл в папке на которую указывает ссылка в первом случае.

Лежит. в обоих случаях в одном и том же месте.

Цитата

Может просто файл блочится, может что-где забываете?

Вот тоже на это подумываю, но что?..

Код

        InputStream in = item.getInputStream();
        String s = this.getServletConfig().getInitParameter("home_path");
        FileOutputStream fos = new FileOutputStream(s + File.separator+"pics"+ File.separator + filename);
        int b;
        while ((b = in.read()) != -1) {
            fos.write(b);
        }
        fos.flush();
        fos.close();
        in.close();

вроде всё закрываю...

Автор: v2v 8.11.2008, 01:46
а какой у тебя веб контейнер?

Добавлено через 4 минуты и 53 секунды
и куда загружается рисунок , случайно не в подпапку WEB-INF

Автор: Cuthbert 8.11.2008, 13:34
Цитата

а какой у тебя веб контейнер?

Tomcat надо думать...Запускаю из NetBeans.

Цитата

и куда загружается рисунок , случайно не в подпапку WEB-INF

не. Папка с рисунками в одном корне вместе с папкой WEB-INF.

Автор: v2v 8.11.2008, 16:33
попробуй провести эксперимент. 
запусти сервер , апотом скопируй в папку где рисунки лежат какой то файлик, после проверь сможешь к нему доступиться или нет - без перезагрузки сервера.

Автор: Cuthbert 9.11.2008, 12:46
Цитата

попробуй провести эксперимент. 
запусти сервер , апотом скопируй в папку...


Как в воду смотрел!!!
не могу получить доступ!
значит аплоад работает замечательно, но в чем же проблема?

Автор: v2v 10.11.2008, 22:50
папка сервера?
куда льёш?

Добавлено через 13 секунд
и ещё папка приложения?

Автор: Cuthbert 11.11.2008, 11:58
работаю (и запускаю сервер) из-под NetBeans, Tomcat устанавливался вместе с ним
Net Beans: D:\Programs\NetBeans 6.1
Tomcat:      D:\Programs\Apache Tomcat 6.0.16

папка проекта NetBeans:      E:\WebShop
поэтому папка приложения: E:\WebShop\web
соответственно, WEB-INF:     E:\WebShop\web\WEB-INF
начальная страница:             E:\WebShop\web\index.jsp откликается по адресу http://localhost:8084/
картинки заливаю:                 E:\WebShop\web\pics, адрес к картинке -               http://localhost:8084/pics/__.jpg

может нужно просто что-то в каком-нить server.xml дописать?

на самом деле еще вопрос - весь проект буде переноситься на линукс, тока разрабатывается под виндой
так там как лучше организовать иерархию?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)