Problem with Java Server Faces on JDK 1.6

On my new project, I had a problem with the web application deployment, which consisted of the classic combination of Java Server Faces, Spring Framework, iBatis. I guess it was because I asked Google’s bad, but I spent it, how to solve this problem, some time, so they deserve an entry in my blog.

So what was the problem? Once I tried to deploy to Tomcat, I got this error message:

java.lang.ClassNotFoundException: [Ljava.lang.String;
at org.apache.catalina.loader.WebappClassLoader.loadClass (WebappClassLoader.java: 1645)
at org.apache.catalina.loader.WebappClassLoader.loadClass (WebappClassLoader.java: 1491)
at com.sun.faces.config.ConfigureListener.configure (ConfigureListener.java: 635)
at com.sun.faces.config.ConfigureListener.configure (ConfigureListener.java: 422)
        ...

I tried various queries, but I was not successful. When I lost hope, I found the following link, which is described bug in JDK .

Before I come across this error, because the last one was a web application to JDK 1.5, where everything works fine. So if anybody knows this bug, I offer the „official workaround.

Just pass the JVM startup parameter:

-Dsun.lang.ClassLoader.allowArraySyntax = true

Stavba kokpitu – první výsledky

V předchozím článku jsem psal o tom, že jsem si začal stavět novou hračku. Jedná se o velký projekt, jehož realizace bude trvat hodně dlouho. Vydal jsem se totiž tou cestou, že komponenty si budu z velké části vyrábět sám (hlavně elektroniku). Abych si ověřil koncepci, začal jsem stavět část kokpitu, která nevyžaduje nějaké složité stavební úpravy, protože ji je možné používat jako, řekněme, stand-alone zařízení.
Pokračovat ve čtení „Stavba kokpitu – první výsledky“

Můj nový projekt

Před nedávnem jsem celkem úspěšně dokončil jeden ze svých největších soukromých projektů – stavbu svého domku. A protože jsem člověk, který stále touží něco tvořit, rozhodl jsem se vrátit ke kořenům. Málokdo ví, že mou původní specializací je automatizační technika a systémy, což zahrnuje tvorbu všelijakých jednoúčelových zařízení postavených zejména nad jednočipovými procesory. „Bastlení“ čehokoliv jsem opustil již před spoustou let a nejspíš se k ní asi nikdy nevrátil, kdybych doma náhodou nenašel pár elektronických součástek…
Pokračovat ve čtení „Můj nový projekt“

JAX-WS a SOAP Attachments

Pokud potřebujete poslat přes webovou službu trochu víc dat, než je pár detailů o klientovi, je dobré tyto data posílat jako SOAP attachment a ne přímo v nějakém tagu samotné zprávy. A přesně to, jsem se snažil řešit na projektu. Používáme JAX-WS a aplikace běží to na Weblogicu Server. Weblogic je znamý tím, že si „sem-tam“ některé knihovny upraví k obrazu svému a pak se výsledek může chovat trochu jinak, než by člověk mohl čekat. Nevím, zda se v mém případě jednalo o nějakou lahůdku Weblogicu, ale postup k cíli nebyl vůbec přímočarý.
Pokračovat ve čtení „JAX-WS a SOAP Attachments“

Instalace Oracle XE na 64 bitovém linuxu

Když jsem instaloval na svojí pracovní stanici operační systém, rozhodoval jsem se mezi tím, zda nainstalovat 32-bitové jádro nebo 64-bitové. Nakonec padlo rozhodnutí pro 64-bitové jádro, protože jsem si říkal, že budu mít systém na špici technologického vývoje, nebudu se dlouhou dobu muset starat o nějaké zásadní upgrady atd. Jak já se spletl! 64-bitové jádra prostě nejsou podporovány dodavateli software a já skoro při každé instalaci lituji svého rozhodnutí jít do 64-bitového systému.

Nejinak tomu bylo v případě, kdy jsem si chtěl nainstalovat Oracle XE. Na webu Oracle je pěkný návod, podle kterého vše vypadá jednoduše, jenže vše je jinak.
Pokračovat ve čtení „Instalace Oracle XE na 64 bitovém linuxu“

Co to jsou Java Closures?

Opět se ve světě jazyka Java objevil fenomén zvaný Java Closures (také zvaný BGGA), který je plánován do Javy 7. Už při prvním uvedení se proti němu zvedla vlna nevole a zdálo se, že tato konstrukce přeci jen v Javě 7 vznikne. Kolem tohoto tématu bylo už napsána spousta textu. Navíc jsme se o tématu Java Closures docela vášnivě pobavili v našem týmu. Proto jsem se rozhodl, že k tomuto tématu upustím nějaké moudro i já…
Pokračovat ve čtení „Co to jsou Java Closures?“

JNDI kontext bez aplikačního serveru?

V praxi jsem se setkal se situaci, kdy potřebuji spouštět unit testy mimo aplikační server. Na tom není nic zvláštního, dělá to každý. Pro testy si vytvořím vlastní konfigurace, které JNDI nepotřebují a je to. Jenže to by nebylo dostatečně zajímavé a hlavně je nutné udržovat dvě konfigurace, což je při vrozené lenosti programátora prostor pro inovaci.
Pokračovat ve čtení „JNDI kontext bez aplikačního serveru?“