![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| Swatch |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 453 Регистрация: 2.7.2007 Репутация: нет Всего: 1 |
Добрый день
столкнулась со следующей проблемой: надо передать данные с клиента сервлету, чтобы он сохранил данные в БД. Вот моя реализация. клиент:
сервлет:
на клиенте вызываю метод setCategory:
сервлету вообще ничего не передается... пыталась через system.out.println() посмотреть, что приходит... но ничего не получаю, видимо, ничего не приходит... |
||||||
|
|||||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 19 Всего: 538 |
Скорее всего ты просто шлёшь на сервер свой объект сериализованный в XML и все. Без всяких HTTP заголовков, и сервер его просто игнорирует т.к. не понимает подобного запроса.
Используй HttpClient. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
| Swatch |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 453 Регистрация: 2.7.2007 Репутация: нет Всего: 1 |
А можно пример использования HttpClient-а для передачи данных сервлету?
и что, хмл-ками вообще сервлету ничего передать нельзя? |
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 19 Всего: 538 |
На оффсайте полно примеров (есть даже PostXML) Да можно конечно. Я говорил не о том, ты должна передать корректный HTTP запрос, чтобы сервер мог его обработать. А не просто записать XML в поток. Поэтому или формировать HTTP заголовок самостоятельно или использовать утилиты. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
| COVD |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1655 Регистрация: 26.7.2005 Репутация: 11 Всего: 43 |
Swatch, в ваш пример надо добавить conn.getInputStream(); после записи обьекта. Таким образом вы дадите понять клиенту, что закончили писать данные и переходите к чтение ответа сервера. И тогда данные, записанные в буфер операцией writeObject, будут отправлены на сервер. А так они не отправляются. Сделано так потому, что метод post требует указания в хедере размера пересылаемых данных. Пока вы не закончили писать в буфер, размер определить нельзя.
|
|||
|
||||
| Swatch |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 453 Регистрация: 2.7.2007 Репутация: нет Всего: 1 |
хммм... поставила conn.getInputStream() после e.writeObject(obj) в клиенте. получила следующую ошибку
лог томКэт-а:
лог-клиента:
что это такое, не подскажете? почему возникает ошибка??? |
||||
|
|||||
| Ulysses4j |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 304 Регистрация: 6.6.2007 Где: Ростов-на-Дону Репутация: нет Всего: 10 |
Swatch, вам же сказали, нельзя с Томкатом так общаться, с ним надо по http разговаривать. Вы что-нибудь слышали о сетевых протоколах вообще? Использование определенного протокола налагает набор требований на формат пересылаемых сообщений, нельзя просто одни данные (ваш XML-кодированный объект) слать, нужно еще разной метаинформации (информации о пересылаемой информации и ее отправителе)... Если вам хочется просто пересылать информацию, нужно написать свой маленький сервер и использовать его вместо Tomcat: повесить на другой порт и слушать его, если позволяют привилегии на серверной машине. Для Tomcat наиболее распространены тонкие клиенты — на основе браузера. Писать толстый клиент для Tomcat с вашей подготовкой, судя по вему, дело на данный момент малоперспективное — вы уж не обижайтесь: это самый сложный из трех вариантов (тонкий клиент, свой маленький сервер, толстый клиент).
-------------------- Communication is critical to the job of a programmer. C. Jazdzewski. Fatherly Advice To New Programmers |
|||
|
||||
| Swatch |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 453 Регистрация: 2.7.2007 Репутация: нет Всего: 1 |
Вообще, о сетевых протоколах я много чего слышала... просто раз сказали, что надо вставить conn.getInputStream(), я и попробовала... и ничего страшного нет, если человек пытается начать со сложного...
|
|||
|
||||
| Ulysses4j |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 304 Регистрация: 6.6.2007 Где: Ростов-на-Дону Репутация: нет Всего: 10 |
Страшного нет ничего — это верно. Просто вряд ли у него что-то получится: учатся обычно от простого к сложному — тут впору не про сетевые протоколы говорить, а про «Рассуждение о методе» Декарта и т. п. Хотя, если не охота с Декартом связываться, надо просто читать книжки: про те же сетевые протоколы и написание сетевых приложений в Java, скажем — ведь есть литература соответсвующая. Форумы все-таки не могут заменить определенный базовый бэкграунд.
Вспоминается совет из книжки «Программист-прагматик», кажется: не программируйте в расчете на случай. Это сообщение отредактировал(а) Ulysses4j - 29.1.2008, 11:34 -------------------- Communication is critical to the job of a programmer. C. Jazdzewski. Fatherly Advice To New Programmers |
|||
|
||||
| Swatch |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 453 Регистрация: 2.7.2007 Репутация: нет Всего: 1 |
может быть кому-то решение моей проблемы покажется кривым, накопала пару примеров и к своей реализации кое-что добавила. в итоге получилось следующее.
клиент:
сервлет:
в итоге, все отлично сохраняется в базу... COVD спасибо за помощь... Ваша строчка стала решающей!!! Добавлено через 2 минуты и 29 секунд ах, да... еще для классика БД я добавила
|
||||||
|
|||||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 19 Всего: 538 |
Не забывай -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: Работа с сетью | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |