Október 5, 2010

SpringSource Tool Suite 2.5 – Error: Method has the same erasure

Java kód, ktorý bol skompilovateľný pod SpringSource Tool Suite 2.3, už nemusí byť skompilovateľný pod 2.5.

Typická chyba: Method has the same erasure.

Problém spôsobí kód, kde sa využíva preťaženie ako:

getById(List <MyClass>, String name)
getById(List <MyClassDto>, String name)

Riešenie: opraviť kód alebo použiť STS 2.3.2.

September 22, 2010

Google App Engine – sporadická garancia dostupnosti?

Pôvodne som chcel tento článok nazvať: Náš Google se Vám co nejsrdečněj omlouvá za toto politováníhodné nedopatření, ke kterému dochází MAXIMÁLNE … třikrát za deset let.

Príhoda z natáčania: deploynete Java aplikáciu na Google obláčik, chcete ukázať ľuďom, ako pekne to funguje a…

Kolečká sa otačajú, procesor si mele-mele-mele…

Timeout error. Pokus môžete opakovať niekoľko krát. Na výsledku nič nezmeníte.

Prezradím, že aplikácia volá veľmi jednoduchú funkciu, ktorá má za úlohu získať údaj z takmer prázdnej databázy.

Počkáte 5 minút a všetko zas ide.

V logu potom objavíte skvelú hlášku:

Request was aborted after waiting too long to attempt to service your request. This may happen sporadically when the App Engine serving cluster is under unexpectedly high or uneven load. If you see this message frequently, please contact the App Engine team.

K svojmu článku: Kde už Google App Enginu nestačí palivo, pridávam túto skutočnosť ako bod 11.

Jún 10, 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ú. 🙂

Február 27, 2010

IntelliJ IDEA 9.0 na Linuxe nefunguje sieť. Pozor na IPv6.

Potreboval som nejaké rozumné prostredie, v ktorom je možné pohodlne vyvíjať Flex na Linuxe. Adobe Flex Builder 3 alpha 5 nie je úplne dobre použiteľný. Nefunguje tam Design view na kreslenie GUI. To by mi až tak nechýbalo. Horšia je chyba v otváraní MXML dokumentov.

Tým pádom aplikáciu, ktorá pozostáva nie len s ActionScriptu, nie je možné ladiť. Tento problém s ignorovaním supportu Flex Buildra (Flash Buildra) na Linuxe, sa dostal na prvé miesto v rebríčku najsledovanejších bugov. Predbehol dokonca aj FP-40.

Pustil som sa teda do hľadania iného nástroja. Vo fóre niekto odkazoval na IntelliJ IDEA 9.0. Stiahol som toto IDE, stiahol som Flex SDK z Opensource.adobe.com. Vytvoril som projekt. Nádherne všetko fungovalo. Niektoré vlastnosti má IDEA podstatne lepšie spracované než Eclipse. Proste Wow. A teraz prišlo na lámanie chleba.

Naštartujem debugger s náhonom na všetky 4… Nič… Waiting for AIR of Flash player to connect.

Ughm… Flex Debugger Startup Error

O 5 hodín neskôr.

Myslíte, že sa mi to podarilo rozbehať? Nie.

Tu som si všimol niečo čudné. IntelliJ IDEA sa vôbec nechcela pripojiť na sieť. Napríklad zlyhal aj update zoznamu pluginov. List of plugins was not loaded: Network is unreachable. Čudné.

A potom mi to došlo. Ten nešťastník sa pokúšal pripájať cez IPv6 na internet, čo sa mu nepodarilo.

Na základe návodu som v /etc/default/grub.conf zmenil parameter pre štart jadra a deaktivoval IPv6

GRUB_CMDLINE_LINUX_DEFAULT="ipv6.disable=1 quiet"

a zaktualizoval Grub 2

update-grub

Po štarte systému som sa presvedčil príkazom o deaktivovanej podpore pre IPv6:

ip a | grep inet6

Žiadny riadok na výpise. Úspech, nebeží žiadne IPv6 rozhranie.

A výsledok? IntelliJ IDEA 9.0 funguje perfektne a výborne debugguje aj Flexové aplikácie.