14. January 2011

How to introspect AMF communication

BlazeDS provides optimized binary protocol for transfering data known as AMF protocol.

AMF is fast and it has support for transfer of complex objects. Specification of AMF is available at opensource.adobe.com.

The only problem is how to introspect it?

AMF is binary. Therefore normal POST dump or Wireshark dump are not useful.

One solution was to use Flash Builder, but it is quite big and it requires big installation and license and so on.

Piotr Walczyszyn released incredibly simple and powerful AMF introspection tool – Toaster Lite. It acts as a proxy and it decodes all requests and responses.

Just install it. It’s quite small. Configure port and that’s it :-)

Check out Piotr’s blog with video tutorial.

3. January 2011

pyamf.DecodeError: Array type required for request body

PyAMF is quite handy library for building apps that communicate with BlazeDS servers via AMF protocol.

Manual says that you should use setCredential to authenticate client.

The only problem is that PyAMF throws strange error after calling any method from remote service:

pyamf.DecodeError: Array type required for request body (ticket 711)

This is quite misleading error message. In this case it means that you do not have correct credentials. Check your user name and password in setCredential method. ;-)

8. December 2010

BlazeDS and Google App Engine

Official version of BlazeDS still does not support Google App Engine.

If you need solution for this problem, check out project s3blazeds.

30. July 2010

Video záznam z prednášky Zváračský kurz na GAE – z Brnenského Barcampu

Na Youtube je už k dispozácii záznam z mojej prednášky Zváračský kurz na Google App Engine a BlazeDS. :-)

Taktiež sú k dispozícii materiály k prednáške.

Pokiaľ vás detailnejšie zaujíma problematika Google App Enginu a BlazeDS, odporúčam si pozrieť videá v článku: Ako vytvoriť klientskú aplikáciu pre Google App Engine s podporou Remote Development Services .

2. July 2010

Ako vytvoriť klientskú aplikáciu pre Google App Engine s podporou Remote Development Services

Ako som už spomínal na BarCampe v Brne, klasický model vývoja klient server aplikácii je celkom pracný. Na jednej strane musíte implementovať serverový interface a na strane druhej musíte vyreplikovať dátové triedy a volania v klientovi. Uznávam, že ručná práca je dnes cenená, ale nie v IT.

Predstavme si scenár:

  • serverový vývojár: naimplementuje funkcie a dáta zaperzistuje pomocou JDO
  • vývojár klienta: pripojí sa na server a vytiahne si volania, ktoré potrebuje a pokračuje v implementácii GUI

Typickým problémom býva zmena rozhrania. Rozšírme scenár:

  • serverový vývojár: zmení API a definíciu tried
  • vývojár klienta: zvolí refresh, zmeny sa vyreplikujú do klientskej aplikácie a len opraví zasiahnutý kód

Pomerne jednoduché scenáre, bez dobrých nástrojov sú však veľmi pracné.

Open source technológia BlazeDS od Adobe podporuje tzv. Remote Development Service. Umožňuje automatizovať veľkú časť manuálnych prác, ktoré sa objavia pri replikácii serverového API do klientských aplikácií. Technológia BlazeDS je primárne integrovaná s Tomcatom a Spring serverom. Mňa zaujímala iná oblasť a síce ako dostať BlazeDS na Google App Engine.

V nasledujúcom screencaste je ukázané, ako RDS funguje.

Archetyp pre Mave nájdete na maven.sinusgear.com.

26. June 2010

Materiály zo zváračského kurzu z BarCampu

K dispozícii sú materiály z prednášky Zváračský kurz pre web – BlazeDS a Google App Engine vo formáte PDF.

V prednáške je spomínaných niekoľko zaujímavých odkazov:

24. June 2010

Zváračský kurz pre web technológie bude aj na BarCampe

Radostná správa! 26.6. budem prednášať na BarCampe na FI v Brne.

Príďte povzbudzovať ;-)

A ako je dobrým zvykom, pre verných čitateľov blogu je nachystaný drobný bonus. Po prednáške sa za mnou zastavte s heslom: “Když něco rozeberem, tak leda debuggerem.” :-)

10. June 2010

BlazeDS Introspection Error

BlazeDS je šikovný kus technológie. Ako to s IT technológiami chodí, tak obsahujú skryté chytáky. Tento stál za všetky drobné.

Nakonfigurujem BlazeDS (prípadne EngineDS, čo je upravená verzia pre Google App Engine), zvolím Connect to Data/Service. Flash Builder zobrazí dostupné služby.

Zaškrtnem vybrané služby a zvolím Finish.

Namiesto očakávaného prehľadu importovaných funkcií dostanem veľmi poučnú a usmerňujúcu chybovú hlášku:

Cannot refresh service. Destination ID and some other properties are missing for the service. Please delete this service, deploy the model (.fml file) in the server, and re-import it via Connect to Data/Service. Try importing by unselecting destination ProductService.

Há a čo teraz?

Prešiel som všetky konfiguračné súbory. Niekoľko krát som preveril messaging-config.xml, remoting.xml a stále nič. Po niekoľkých hodinách som úspešne našiel príčinu problému.

V nastaveniach projektu pod položkou Flex Server bol Context Root nastavený prázdny reťazec. Stačilo predefinovať Context Root a introspection zbehla bez najmenších problémov.

Jeden obyčajný znak ‘/’ a človek nad tým strávi niekoľko hodín. Typická softvérová enterprise chyba.

Chyba je nareportovaná na bugs.adobe.com. Som zvedavý, či na ňu zareagujú. :-)

5. June 2010

Experimentálna verzia Maven repozitáru pre EngineDS

Vytvoril som experimentálnu verziu úložiska pre Maven. V repozitári je uložená patchnutá verzia EngineDS, ktorá je potrebná pre správne fungovanie EngineDS aplikácií na Google App Engine.

Patch bol aplikovaný podľa návodu Martina Zoldana. Patch obsahuje opravu chyby:

flex.messaging.request.DuplicateSessionDetected

Na rozdiel od jeho verzie, prekompilované jary nevyžadujú Spring.

Upozorňujem, že sa jedná o experimentálnu verziu. Ak by ste narazili na problém, dajte mi prosím vedieť.

4. June 2010

Materiály z prvého dielu Zváračského kurzu na BlazeDS

Ako som sľúbil, materiály nájdete v sekcii Prednášky. ;-)

  • Babel fish

      Translate from:

      Translate to:

  • Where’s the fish?

  • Further info

  • Badges

  • Video channel

  • Learning

    Grow your brain.
  • Tags

  • Topics

  • May 2013
    M T W T F S S
    « Feb    
     12345
    6789101112
    13141516171819
    20212223242526
    2728293031  
  • Comments