V812. Особенности при портировании Java софта.

Вопросы-ответы по работе полезного софта и прочие вопросы

Модераторы: Lunat, pvsurkov, AlexG1, KSAT

V812. Особенности при портировании Java софта.

Сообщение Ответ:#1 » makarenkov » 21 янв 2011, 23:33

Еслт предложение собрать в этой теме что-то вроде FAQ по особенностям работы JVM на V812 и других аналогичных моделях, что может быть полезно
при портировании программ на такие устройства.


Первый "камень" в огород:

После приобретения практически за бесценок V812 решил перенести на него некоторые из нужных мне java приложений с SonyEricsson K320i (которым пользовался ранее). Первой был j2me клиент для удаленного управления и контроля сервера ( со стороны сервера cgi шелл скрипт на Apache, обмен по http с RSA/AES шифрованием данных на уровне клиентского приложения и серверного скрипта ( не SSL)). Тупо перенесенное приложение (jar) есс-но работать отказалось с как всегда абсолютно невразумительной диагностикой.
Подробный анализ ситуации показал следующее:
при чтении данных ответа сервера примерно таким образом:
InputStream is=null;
try{
is=Connector.openInputStream("http://....");
ByteArrayOutputStream bos=new ByteArrayOutputStream();
int i; while ((i=is.read())!=(-1)) bos.write(i);

по окончании данных в потоке, is.read возвращает не -1 (как стоило бы делать),а генерит исключение "read error"

В моем случае (когда Connector.openInputStream("http://...."); ), это решилось на стороне сервера добавлением в заголовок Content-Length с указанием длины данных.
Но в случае если открыть сокет тем-же манером ( is.read ведет себя аналогично) и читать из него данные неизвестной длины - тут уже абзац.

Вот такая эпическая фича!
  • 0

Аватара пользователя
makarenkov
Новичок
 
Сообщения: 1
Зарегистрирован: 17 янв 2011, 04:49
Репутация: 0

Вернуться в Обсуждение полезного софта

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0

x

#{title}

#{text}