Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> как передать клиенту хмл-ку 
:(
    Опции темы
Swatch
Дата 18.1.2008, 10:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 453
Регистрация: 2.7.2007

Репутация: 1
Всего: 1



Добрый день.

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

 try {
            // Construct data
            String data = URLEncoder.encode("LoadAuthors", "UTF-8");
            // Send data
            URL url = new URL("http://localhost:8080/RS-Blog__server_/AuthorServlet");
            URLConnection conn = url.openConnection();
            conn.setDoOutput(true);
            OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream());
            wr.write(data);
            wr.flush();

далее сервер загружает список с помощью хибернейт и кодирует его в хмл 
Код

protected void authorsLoad(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        String d = (String) request.getAttribute("LoadAuthors");
        if (d != null) {
            authors_list al = new authors_list();
            HibernateUtil.Load(al);
            XMLEncoder e = new XMLEncoder(
                    new BufferedOutputStream(
                    new FileOutputStream("Authors.xml")));
            e.writeObject(al);
            e.close();
         }
    }


и должен переслать клиенту... не понимаю, как переслать клиенту хмл и как клиент должен ее получить... подскажите, пожалуйста!!!  smile 


PM MAIL   Вверх
Tony
Дата 18.1.2008, 10:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1159
Регистрация: 3.3.2006
Где: Riga

Репутация: 6
Всего: 12



na servere
Код

XMLEncoder e = new XMLEncoder(
                    new BufferedOutputStream(response.getOutputStream());

u klenta:
budet prosto nado budet otkrit' inputstream i 4itat' massivom bajtov v fail(ili kuda nedo)


--------------------
user posted image
user posted image
PM MAIL Skype   Вверх
Swatch
Дата 18.1.2008, 13:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 453
Регистрация: 2.7.2007

Репутация: 1
Всего: 1



но мне не надо, чтобы был массив байт или файл, мне надо из закодированной хмл-ки получить List, который был закодирован на сервере, чтобы потом этот  List можно было использовать....  smile 
PM MAIL   Вверх
Swatch
Дата 18.1.2008, 13:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 453
Регистрация: 2.7.2007

Репутация: 1
Всего: 1



клиент:
Код

public static categories_list geCategoryList() {
        OutputStreamWriter wr;
        try {
            // Construct data
            String data = URLEncoder.encode("LoadCategories", "UTF-8");
            // Send data
            URL url = new URL("http://localhost:8080/RS-Blog__server_/CategoryServlet");
            URLConnection conn = url.openConnection();
            conn.setDoOutput(true);
            wr = new OutputStreamWriter(conn.getOutputStream());
            wr.write(data);
            wr.flush();

            // Get the response
            XMLDecoder d = new XMLDecoder(new BufferedInputStream(
                    conn.getInputStream()));
            allCategory = (categories_list) d.readObject();
            d.close();
            wr.close();
        }
        catch (Exception e) {
        }
        return allCategory;
    }
}


сервер:
Код

protected void categoriesLoad(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        HibernateUtil.getSessionFactory();
        category cat = new category();
        cat.setTitle("title1");
        HibernateUtil.Save(cat);

        String d = (String) request.getAttribute("LoadCategories");
        if (d != null) {
            categories_list catl = new categories_list();
            HibernateUtil.Load(catl);
            XMLEncoder e = new XMLEncoder(
                    new BufferedOutputStream(response.getOutputStream()));
            e.writeObject(catl);
            e.close();
        }
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        categoriesLoad(request, response);
    }


При запуске клиента возникает такая ошибка:
Код

org.xml.sax.SAXParseException: Premature end of file.
Continuing ...
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException


Кто-нибудь знает, почему????
PM MAIL   Вверх
Swatch
Дата 18.1.2008, 14:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 453
Регистрация: 2.7.2007

Репутация: 1
Всего: 1



или вот аткую ошибку выкидывает:
Код

java.lang.Exception: Unrecognized opening tag: html 
Continuing ...
java.lang.Exception: Unrecognized opening tag: head 
Continuing ...
java.lang.Exception: Unrecognized opening tag: title 
Continuing ...
java.lang.Exception: Unrecognized closing tag: title
Continuing ...
java.lang.Exception: Unrecognized closing tag: head
Continuing ...
java.lang.Exception: Unrecognized opening tag: body 
Continuing ...
java.lang.Exception: Unrecognized opening tag: h1 
Continuing ...
java.lang.Exception: Unrecognized closing tag: h1
Continuing ...
java.lang.Exception: Unrecognized opening tag: h2 
Continuing ...
java.lang.Exception: Unrecognized closing tag: h2
Continuing ...
java.lang.Exception: Unrecognized opening tag: h3 
Continuing ...
java.lang.Exception: Unrecognized closing tag: h3
Continuing ...
java.lang.Exception: Unrecognized closing tag: body
Continuing ...
java.lang.Exception: Unrecognized closing tag: html
Continuing ...
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException


PM MAIL   Вверх
v2v
Дата 18.1.2008, 14:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1620
Регистрация: 20.9.2006
Где: Киев

Репутация: 9
Всего: 56



выведи на клиенте просто InputStream что бы посмотреть какой у тебя хмл приехал. увидешь, думаю найдёшь ошибку.


--------------------
PM   Вверх
Swatch
Дата 18.1.2008, 14:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 453
Регистрация: 2.7.2007

Репутация: 1
Всего: 1



попыталась вывести просто инпутСтрим, все равно та же ошибка:
Код

org.xml.sax.SAXParseException: Premature end of file.
Continuing ...


прочитала на одном форуме, что надо поменять кодировку томкэту:
Tomcat->Properties->Java VM->Java Options: -Dfile.encoding=UTF-8

кто-нибудь знает, где это вписать??? поискала по папке с томкэтом - не нашла:(
PM MAIL   Вверх
v2v
Дата 18.1.2008, 14:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1620
Регистрация: 20.9.2006
Где: Киев

Репутация: 9
Всего: 56



сие есть не то, кажется.

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

Добавлено через 1 минуту и 30 секунд
Код

String k="";
while((k=conn.getInputStream())!=null){
System.out.println(k);
}

это ты на клиенте делаешь что - бы посотмреть хмл?


--------------------
PM   Вверх
Tony
Дата 18.1.2008, 22:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1159
Регистрация: 3.3.2006
Где: Riga

Репутация: 6
Всего: 12



posmotri klassi: XMLEncoder i XMLDecoder


--------------------
user posted image
user posted image
PM MAIL Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.0521 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.