Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > Flex

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 04.08.2011, 17:49
Apikaster вне форума Посмотреть профиль Отправить личное сообщение для Apikaster Найти все сообщения от Apikaster
  № 1  
Ответить с цитированием
Apikaster

Регистрация: Sep 2010
Сообщений: 36
По умолчанию Ява в AMF и во FLEX-е обратно ...

Я долгое уже время мучаюсь с этим вопросом ...
Как можно Яву сжать в AMF и обратное действие без потери данных и метаданных во FLEX передать ...
У меня есть на данный момент реализованный вариант но на XML дадтасете ...
Он классы превращает в xml ... и я там (Во Flex-е) уже с ними работаю ...
Я веб программист и как говориться на совесть программиста пишу на GROOVY ....
Я с помощью JDBC драйвера вытаскиваю запросы ... с оракла , мс и май скюэля и т.д. и т.п ...
Создаю класс в котором применяю какой либо алгаритм и хочу его превратить в AMF ...
В гугле нашел компилятор который сжимает его в AMF ... но он не проканал ...!!!
Я пользуюсь Эклипсом ... СУБД почти все ...
И к примеру я выложил ее на http://localhost:8080/test/testAMF
при входе с браузера просит скачать файл ...
При вызове с flex-а ...
FLEX пишет что нейзвестный формат пришедшего файла ...
А на flex-е принять к примеру как AMF хочется...
нашел декомпилятор в гугле ...
Но тоже не проканал ...
Есть советы ?
Просто XML - он тяжелый ...
А хочется быстроты ...
Если есть у кого буду благодарен и в долгу не останусь ...
Заранее благодарен ...
P.S.
И да я пользовался REMOTE объектом ... передавал параметры как объекты ... но как ни странно и на Яве они приходили не как объекты а как строка ... (ПРОВЕРЯЛ с помощью Уоча ... чтобы без лишних вопросов )

Старый 05.08.2011, 00:44
surlac вне форума Посмотреть профиль Отправить личное сообщение для surlac Найти все сообщения от surlac
  № 2  
Ответить с цитированием
surlac
 
Аватар для surlac

блогер
Регистрация: Nov 2010
Сообщений: 143
Записей в блоге: 1
Цитата:
Сообщение от Apikaster Посмотреть сообщение
Как можно Яву сжать в AMF
Звучит очень подозрительно . Ну да ладно...
Для этого пользуются штуками типа OpenAMF.

Старый 05.08.2011, 00:54
Silicium вне форума Посмотреть профиль Отправить личное сообщение для Silicium Найти все сообщения от Silicium
  № 3  
Ответить с цитированием
Silicium
 
Аватар для Silicium

Регистрация: Sep 2010
Адрес: Ростов-на-Дону
Сообщений: 369
а blazeDS разве не в AMF формате гоняет данные?

Старый 06.08.2011, 10:18
Apikaster вне форума Посмотреть профиль Отправить личное сообщение для Apikaster Найти все сообщения от Apikaster
  № 4  
Ответить с цитированием
Apikaster

Регистрация: Sep 2010
Сообщений: 36
Цитата:
Сообщение от surlac Посмотреть сообщение
Звучит очень подозрительно . Ну да ладно...
Для этого пользуются штуками типа OpenAMF.
OpenAMF я пробовал ...
Только вот толи я не правильно прописал его ...
Толи я на яве не правильно его в АМФ конвертнул ...
Хотя все по инструкций сделал ...
С явы на яву понимает аррей коллекшн ...
А при приеме с флекса он ее как текси воспринимает ...
Но в принципе я и с явы на яву когда гонял оно как текст было ...
Но после распарсивания (приема с другой стороны) он обратно как аррей коллекшн становился ...
А во флексе не смог такого же результата добиться ?!
А blazeDS я тоже пробовал ...
Но он какой то казючий ...
Сыроватый ...
Думал сам дописать да исходники ссыльчатые ...

В общем я тут накидал что я хотел протестить ...
Вот исходники того класса на яве с которыми я тестировал ...
Код:
package kz.eitt.xcms.flex;

import java.io.*;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.HashMap;
import flex.messaging.io.SerializationContext;
import flex.messaging.io.amf.Amf3Input;
import flex.messaging.io.amf.Amf3Output;
import javassist.bytecode.ByteArray;

import javax.xml.parsers.DocumentBuilderFactory;
import com.xcframework.tab.XTable;

public class testAMF {
public static void main(String[] args) {
	try {
		
		ArrayList al = new ArrayList();
		 
		al.add("One");
		al.add("Two");
		al.add("Thre");
		al.add("Four");
		al.add("Five");
		al.add("Six");
		al.add("Onere");
		al.add("Twwero");
		al.add("Tsdfghre");
		al.add("Fosdfgur");
		al.add("Fsdfgive");
		al.add("Sisdfgx");
		
		HashMap hm = new HashMap();
		
		hm.put("field1", "value1");
		hm.put("field2", "value2");
		hm.put("field3", "value3");
		hm.put("field4", "value4");
		hm.put("field5", "value5");
		hm.put("field6", "value6");
		hm.put("field1", "value1");
		hm.put("field2", "value2");
		hm.put("field3", "value3");
		hm.put("field4", "value4");
		hm.put("field5", "value5");
		hm.put("field6", "value6");
		hm.put("field1", "value1");
		hm.put("field2", "value2");
		hm.put("field3", "value3");
		hm.put("field4", "value4");
		hm.put("field5", "value5");
		hm.put("field6", "value6");
		hm.put("field7", "value1");
		hm.put("field8", "value2");
		hm.put("field9", "value3");
		hm.put("field10", "value4");
		hm.put("field11", "value5");
		hm.put("field12", "value6");
		
		SerializationContext context = getSerializationContext();
		
		TestBean testBean = new TestBean();
		//testBean.setList(al);
		//testBean.setMap(hm);
		testBean.setString("test test test test test test");
			
		
		ByteArrayOutputStream bout = new ByteArrayOutputStream();
		//ByteArray bout = new ByteArray();
		
		Amf3Output amf3Output = new Amf3Output(context);		
		amf3Output.setOutputStream(bout);
		amf3Output.writeObject(testBean);
		File f = new File("f.txt");
		
		FileOutputStream to = new FileOutputStream(f); 
		bout.writeTo(to);
		amf3Output.flush();
		amf3Output.close();

		System.out.println("testBean = " + testBean.toString().length());
		System.out.println("amf3Output = " + amf3Output.toString().length());

		System.out.println("string =" + testBean.getString());
		//System.out.println("list =" + testBean.getList());
		//System.out.println("map =" + testBean.getMap());
		
		
		
		
		//InputStream bIn = new ByteArrayInputStream(bout.toByteArray());
		File ff = new File("f.txt");
		FileInputStream i = new FileInputStream(ff); 
		
		//ByteArrayInputStream bIn = new ByteArrayInputStream(bout.toByteArray());
		//ByteArrayInputStream bIn = new ByteArrayInputStream(i);
		
		Amf3Input amf3Input = new Amf3Input(context);
		
		//amf3Input.setInputStream(bIn);
		amf3Input.setInputStream(i);		
		TestBean o = (TestBean) amf3Input.readObject();
		
		
		System.out.println("str eq = " + o.getString().equals(testBean.getString()));		
		//System.out.println("list eq = " + o.getList().equals(testBean.getList()));
		//System.out.println("map eq = " + o.getMap().equals(testBean.getMap()));
		
		System.out.println("string =" + o.getString());
		//System.out.println("list =" + o.getList());
		//System.out.println("map =" + o.getMap());
		
		System.out.println("amf3Input = " + amf3Input.toString().length());
		
	} catch (Exception e) {
	e.printStackTrace();
	}
}

public static SerializationContext getSerializationContext() {
//Threadlocal SerializationContent
SerializationContext serializationContext = SerializationContext.getSerializationContext();
/*
serializationContext.enableSmallMessages = true;
serializationContext.instantiateTypes = true;
//use _remoteClass field
serializationContext.supportRemoteClass = true;
//false Legacy Flex 1.5 behavior was to return a java.util.Collection for Array
//ture New Flex 2+ behavior is to return Object[] for AS3 Array
serializationContext.legacyCollection = false;
serializationContext.legacyMap = false;
//false Legacy flash.xml.XMLDocument Type
//true New E4X XML Type
serializationContext.legacyXMLDocument = false;
//determines whether the constructed Document is name-space aware
serializationContext.legacyXMLNamespaces = false;
serializationContext.legacyThrowable = false;
serializationContext.legacyBigNumbers = false;
 
serializationContext.restoreReferences = false;
serializationContext.logPropertyErrors = false;
serializationContext.ignorePropertyErrors = true;
*/
return serializationContext;

/*
97.
  serializationContext.enableSmallMessages = serialization.getPropertyAsBoolean(ENABLE_SMALL_MESSAGES, true);
98.
  serializationContext.instantiateTypes = serialization.getPropertyAsBoolean(INSTANTIATE_TYPES, true);
99.
  serializationContext.supportRemoteClass = serialization.getPropertyAsBoolean(SUPPORT_REMOTE_CLASS, false);
100.
  serializationContext.legacyCollection = serialization.getPropertyAsBoolean(LEGACY_COLLECTION, false);
101.
  serializationContext.legacyMap = serialization.getPropertyAsBoolean(LEGACY_MAP, false);
102.
  serializationContext.legacyXMLDocument = serialization.getPropertyAsBoolean(LEGACY_XML, false);
103.
  serializationContext.legacyXMLNamespaces = serialization.getPropertyAsBoolean(LEGACY_XML_NAMESPACES, false);
104.
  serializationContext.legacyThrowable = serialization.getPropertyAsBoolean(LEGACY_THROWABLE, false);
105.
  serializationContext.legacyBigNumbers = serialization.getPropertyAsBoolean(LEGACY_BIG_NUMBERS, false);
106.
  boolean showStacktraces = serialization.getPropertyAsBoolean(SHOW_STACKTRACES, false);
107.
  if (showStacktraces && Log.isWarn())
108.
  log.warn("The " + SHOW_STACKTRACES + " configuration option is deprecated and non-functional. Please remove this from your configuration file.");
109.
  serializationContext.restoreReferences = serialization.getPropertyAsBoolean(RESTORE_REFERENCES, false);
110.
  serializationContext.logPropertyErrors = serialization.getPropertyAsBoolean(LOG_PROPERTY_ERRORS, false);
111.
  serializationContext.ignorePropertyErrors = serialization.getPropertyAsBoolean(IGNORE_PROPERTY_ERRORS, true);
112.
  */
}
}

Старый 16.08.2011, 02:18
surlac вне форума Посмотреть профиль Отправить личное сообщение для surlac Найти все сообщения от surlac
  № 5  
Ответить с цитированием
surlac
 
Аватар для surlac

блогер
Регистрация: Nov 2010
Сообщений: 143
Записей в блоге: 1
Цитата:
Сообщение от Silicium Посмотреть сообщение
а blazeDS разве не в AMF формате гоняет данные?
В нём самом, только может это делать даже поверх HTTP.

Старый 19.08.2011, 17:15
Apikaster вне форума Посмотреть профиль Отправить личное сообщение для Apikaster Найти все сообщения от Apikaster
  № 6  
Ответить с цитированием
Apikaster

Регистрация: Sep 2010
Сообщений: 36
Цитата:
Сообщение от surlac Посмотреть сообщение
В нём самом, только может это делать даже поверх HTTP.
Можно тут по подробнее ?
Я не пользуюсь Блэйзом...
Мне лишь хотелось бы используя с их библиотеками, скомпилить мои датасет так, чтобы не терялись мета данные и другие параметры...
Такое возможно ?

Старый 10.09.2011, 01:33
surlac вне форума Посмотреть профиль Отправить личное сообщение для surlac Найти все сообщения от surlac
  № 7  
Ответить с цитированием
surlac
 
Аватар для surlac

блогер
Регистрация: Nov 2010
Сообщений: 143
Записей в блоге: 1
Цитата:
Сообщение от Apikaster Посмотреть сообщение
Я не пользуюсь Блэйзом...
Правильно делаете — есть много более удачных альтернатив .

Старый 14.09.2011, 11:47
Gubber вне форума Посмотреть профиль Отправить личное сообщение для Gubber Посетить домашнюю страницу Gubber Найти все сообщения от Gubber
  № 8  
Ответить с цитированием
Gubber

Регистрация: Sep 2000
Адрес: Россия, Обнинск
Сообщений: 84
Отправить сообщение для Gubber с помощью ICQ
Цитата:
Сообщение от Apikaster Посмотреть сообщение
Можно тут по подробнее ?
Я не пользуюсь Блэйзом...
Мне лишь хотелось бы используя с их библиотеками, скомпилить мои датасет так, чтобы не терялись мета данные и другие параметры...
Такое возможно ?
Не прилично давать ссылки на свой сайт, но посмотрите вот здесь
В принципе использование любого фреймворка вместо BlazeDS вносит лишь небольшие коррективы.
__________________
flex vs java
ICQ#65310126

Создать новую тему Ответ Часовой пояс GMT +4, время: 12:36.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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