|
|
|
Проблема с Apache HttpClient4 при использовании многопоточности.
|
|||
|---|---|---|---|
|
#18+
Здравствуйте. Пытаюсь написать аплоадер файлов, который будет производить загрузку файла на сервер в отдельном потоке, чтобы не блокировать все приложение, так как файлы ожидаются очень большими. Проблема в том, что при реализации, внутри переопределенного метода run, происходит следующая ситуация: Поток всегда переходит в состояние terminated и случается это как раз на вызовах методов классов Http клиента (для контроля даже просто расставлял вызовы вывода в консоль). Не могу понять в чем здесь может быть проблема. Возможно, кто-то с таким сталкивался. Что-то я делаю неправильно, но никак не поймы что. Пробовал выносить всю инициализацию данных в основной поток и внутри оставлял только вызов client.execute() - не помогло. Трэд умирает. HttpClent создаю так: Код: java 1. 2. 3. 4. 5. 6. 7. обычное - new DefaultHttpClient() тоже ничего не дает. Вот исходный код: FilePutThread наследуется от FileTransferThread, который в свою очередь наследуется от Thread. Код: 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. 70. 71. 72. 73. 74. 75. 76. 77. 78. Код: 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. ListenableInputStreamEntity - Самописная сущность, которая поддерживает слушателя прогресса + может возвращать количество пересланных байт(Большая часть украдена из реализации Apache, рефакторинг даже пока руки не дошли сделать :) ): Код: 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. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.05.2012, 02:23:17 |
|
||
|
Проблема с Apache HttpClient4 при использовании многопоточности.
|
|||
|---|---|---|---|
|
#18+
SiberianGorilla, Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Попробуйте вывести stackTrace в лог, возможно, где- то выбрасывается исключение, которое поможет разобраться в причинах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.05.2012, 02:54:41 |
|
||
|
Проблема с Apache HttpClient4 при использовании многопоточности.
|
|||
|---|---|---|---|
|
#18+
Нет, я пробовал все под catch ставить - не помогает, ничего нет. Я здесь привел изначальный вариант, когда я только начал дебажить. Ошибок никаких. Поток просто умирает и всё. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.05.2012, 10:55:25 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=37778994&tid=2131879]: |
0ms |
get settings: |
10ms |
get forum list: |
28ms |
check forum access: |
7ms |
check topic access: |
7ms |
track hit: |
54ms |
get topic data: |
16ms |
get forum data: |
3ms |
get page messages: |
76ms |
get tp. blocked users: |
2ms |
| others: | 331ms |
| total: | 534ms |

| 0 / 0 |
