|
|
|
Сервелет: не могу нормально входящий поток считать :(
|
|||
|---|---|---|---|
|
#18+
Используется в конторе с незапамятных времен сервлет для шлюзования запросов из лвс наружу. Технология хоть и старье, но работает, все к ней привыкли, менять технологию не будем. Раньше от клиента шел просто запрос, теперь надо xml'ку кидать. Сам я на жабе не кодил толком никогда, но разбираться мне. На этапе отладки технологии сделал апплет, который кидает xml сервлету и получает аналогичный ответ. Сервлет, для контроля, пишет запрос в файл, а апплет - ответ. Вроде все просто, но сервелет при чтении потока зависает в конце, т.е. данные все вычитал, но проверка на конец данных не срабатывает. Сервлет: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. Апплет: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. Причем, если клиенту вернуть ответе - все читается и сохраняется. Функция makeResponse сервлета аналогична функции makeRequest апплета. И, изначально, функции чтения потока так же были один в один - сервлет вис. Потом уже я всякие варианты пробовал - без эффекта. На клиенте закомментарены строки настройки соединения - пробовал всякое и не только эти - ничего не меняется. Вроде самые основы, ничего особенного, но на грабли напоролся. Что делаю не так? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2012, 08:58:31 |
|
||
|
Сервелет: не могу нормально входящий поток считать :(
|
|||
|---|---|---|---|
|
#18+
Что за дурацкая привычка через readLine() данные вычитывать. Работа со строками нужна в очень редких случаях. И этот метод нужно использовать только при работе с данными, где вам нужно оперировать отдельными строками. Читайте посивольно с буфером. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2012, 09:49:44 |
|
||
|
Сервелет: не могу нормально входящий поток считать :(
|
|||
|---|---|---|---|
|
#18+
BlazkowiczЧто за дурацкая привычка через readLine() данные вычитывать. Работа со строками нужна в очень редких случаях. И этот метод нужно использовать только при работе с данными, где вам нужно оперировать отдельными строками. Читайте посивольно с буфером. Что за дурацкая привычка высказываться не по теме? Читайте внимательнее. Я указал, что изначально все было идентично апплету - там чтение посимвольное. В любом случае, построчное чтение ничего не ухудшает, а посимвольное, в данном конкретном случае, решению проблемы никак не помогает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2012, 10:13:18 |
|
||
|
Сервелет: не могу нормально входящий поток считать :(
|
|||
|---|---|---|---|
|
#18+
vood_nskЧто за дурацкая привычка высказываться не по теме? Стараюсь. vood_nskЧитайте внимательнее. Походу это мне нужна помощь? vood_nskЯ указал, что изначально все было идентично апплету - там чтение посимвольное. ОК vood_nskВ любом случае, построчное чтение ничего не ухудшает, а посимвольное, в данном конкретном случае, решению проблемы никак не помогает. Построчное больше памяти отъедает. XML он вообще многими тулзами в одну строку формируется. -1 посылать не пробовали из апплета? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2012, 10:22:48 |
|
||
|
Сервелет: не могу нормально входящий поток считать :(
|
|||
|---|---|---|---|
|
#18+
Blazkowicz-1 посылать не пробовали из апплета? Помогло! Вот жеж хрень. Добавил "outputStream.write(-1);". Почему сработало - так и не понял, тем более, что ответ сервлета апплет читает безо всяких -1. Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.05.2012, 11:19:53 |
|
||
|
|

start [/forum/topic.php?fid=59&fpage=289&tid=2131775]: |
0ms |
get settings: |
13ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
35ms |
get topic data: |
17ms |
get forum data: |
4ms |
get page messages: |
64ms |
get tp. blocked users: |
2ms |
| others: | 407ms |
| total: | 564ms |

| 0 / 0 |
