Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Серверные технологии и Flash (http://www.flasher.ru/forum/forumdisplay.php?f=62)
-   -   JAVA to Flash types (http://www.flasher.ru/forum/showthread.php?t=121624)

Hunter25_09 19.02.2009 12:53

JAVA to Flash types
 
Здравствуйте.

Столкнулся вот с такими проблемами.
Я пишу клиент-серверное приложение. Сервер на java (сервак GlassFish2, среда NetBeans). Клиент пишу на Flash ( только на Flash, не использую какие либо фрайемворки типа BlazeDS и никакого Flex).
Сервак представляет собой WebService. Т.е. общаются клиент и сервер по SOAP.
Проблема передать от сервера клиенту простые типы данных не возникает...
1) Как передать массив с сервера (java) клиенту(Flash (as2))?
2) Есть ли возможность передать объект некоторого сквоего класса?

Есть возможность это решать с помощью сериализаци и десериализации. Но может есть как-дь более простое решение... Если нет, то можете привести пример сериализации, т.к. я с ней не очень знаком...

Да, и переделывать массив в видете строки формата XML - решение не очень, хотелось бы как-дь другого решения...

P.S.: Сил нет больше бороться с этим....=((:wacko:

Заранее большое спасибо!

wvxvw 19.02.2009 15:01

Ну так вы сами себе злой Буратино - У Флеша есть родной формат для сериализации и пересылки (AMF), а вы ему XML отдаете...

Foli 19.02.2009 15:56

Вы всё не правильно делаете. :umnik2:

Используйте RemoteObject + BlazeDS. :bb:
Это очень простое и удобное решение.
Во флексе будете дёргать свои Java - функции, как будтно вы в NetBeans.
Многие ошибочно полагают, что это сложно. Это самый простой метод. Всё равно рано или поздно вы это поймёте. Все через это проходят.


Serializing between AS and Java


:umnik2:

Hunter25_09 19.02.2009 17:27

Спасибо за помощь...
Я так понял иначе никак.... Эххх.... тогда надо все взвесить... и обдумать....:o
Спасибо за ссылку - почитаю.:umnik2:

Добавлено через 6 часов 48 минут
wvxvw:

Меня заинтересовало вот что, т.к. AMF строится поверх SOAP то можно как то преобразовать формат отправляемого сообщения в AMF(или даже наверное легче изменить на стороне клиента..??) . Если можно, то подскажите как. Я посмотрел таблицу соответсвия типов, массивы простых типов передовать можно спокойно, правда протокол должен быть не SOAP а AMF.

Foli 20.02.2009 15:50

Цитата:

Сообщение от Hunter25_09
Меня заинтересовало вот что, т.к. AMF строится поверх SOAP то можно как то преобразовать формат отправляемого сообщения в AMF(или даже наверное легче изменить на стороне клиента..??)

С такими идеями, я думаю, вам лучше подумать о новой профессии.

Цитата:

Сообщение от Hunter25_09
правда протокол должен быть не SOAP а AMF.

Протокол AMF ещё не предумали :umnik2:

Вопрос:

Если вы используете вэб сервер GlassFish, почему решили отказаться от BlazeDS (как один из вариантов)?

Вы должны чётко представлять все возможные варианты для принятия правильного решения. Я думаю, что вы просто боитесь использовать правильный путь для решения вашей задачи. Вы просто научились работать с WebService и не хотите с ним расставаться. :umnik2:
Но как я уже писал выше, рано или поздно может потребоваться след:

Цитата:

Сообщение от Hunter25_09
2) Есть ли возможность передать объект некоторого сквоего класса?

и тут юные дарования либо растут дальше в своей професии, либо берутся за изобретение велосипеда.

wvxvw 20.02.2009 16:07

AMF = ActionScript Message Format это как бы не протокол... это формат записи данных.
Т.е. вот вы хотите записать (float)1, и у вас есть куча вариантов, как это сделать, чтобы одна программа другую поняла. Вы можете это сделать так: <float>1</float>, а можете так: [побитно] 00000000 00000001 00000000 000000000, а можете так: 00000001 00000001 [первый байт указывает тип передаваемых данных + парсер знает, что если в тртем байте есть указатель а не значение, то значение во втором байте нужно "распаковать" до полноценного float, а не, скажем char]. Но вы это все не видите и никогда, практически, вручную с этим не работаете - у вас уже есть готовые АПИ для сериализации / десериализации. Ну и кроме того, в данном конкретном примере вы выиграете 800% в объеме передаваемой инфы.

Да и это... в общении Флеш - сервер смысл использовать SOAP отсутствует напрочь. Я еще могу представить, зачем можно использовать REST (он все-таки немного по-экономнее) - это если нужно, чтобы ЯваСкрипт мог контактировать с теми же сервисами. Но если такое не планируется, то общаться пересылая ХМЛи туда и обратно - очень не продуктивно.

Hunter25_09 21.02.2009 03:48

Спасибо всем за помощь! Решил все-таки не использовать ни Flex и BlazeDs и не WebService....=))

BlazeDs использовать не стал, т.к. убил весь день и не смог найти примеров и подробной инфы как связать BlazeDs+NetBeans(GlassFish). Сам принцип этой связки не очень пока ясен... А Flex использовать не могу т.к. это групповой проект и не все на это решатся....

Foli:
Пройдясь по форуму, я заметил, что вы на BlazeDs не мало времени убили... Если вас не затруднит, можете скинуть пару ссылок с инфой... желательно где говорится как связывается java и BlazeDs (ну и с примерами желательно....:umnik2:)
..........................................................................
Так же нашел некоторый компонент на Flash http://www.wellconsidered.be/as3-webservice-component/ он распространяется с исходным кодом, можно подправить некоторые вещи для большей удобности,там все отлично будет работать без всяких затруднений..=))
................................................................................

wvxvw:
Цитата:

в данном конкретном примере вы выиграете 800% в объеме передаваемой инфы
:quiet: Пример действительно стоящий... формат сообщения решил создать что-то в похожем духе (в 16-й системе). Написать для парсировки несколько методов совсем не сложно, зато можно самому оперировать и изменять как вздумается.....:)
Вот на таком выборе я остановлюсь (похоже что изобретаю велосипед, но объем передаваемой инфы очень важен....SOAP был действительно плохим выбором, но стремился к универсальности(чтоб клиент можно было написать не только на FLASH))

jaa_breath 21.02.2009 14:32

использую на серваке glassfish, (ejb3)toplink, привожу ссылки по которым все настроил без проблем
http://livedocs.adobe.com/flex/3/htm..._access_4.html
использую ejb3, для инжектирования из флеша пользуюсь либой
http://www.adobe.com/cfusion/exchang...&extid=1089970
http://livedocs.adobe.com/blazeds/1/...ide/index.html
http://www.brucephillips.name/blog/i...m-Java-to-Flex
офф ресурс проджекта
http://opensource.adobe.com/wiki/dis...lazeds/BlazeDS
пользуюсь idea, но
не понял вас про подключении к нетбинсу.. так же как любую другую ява библиотеку, и потом заверните все нужные либы в ear arhiv

в war архиве который скачаете с оффсайта есть все либы и конфиги, просто скопируйте их в свой java проджект и поправьте свой web.xml


Часовой пояс GMT +4, время: 01:02.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.