a JAXB, az OSGi es a classloader esete

szoval a helyzet:
- A bundleben van JAXB annotalt class
- B bundlebol szeretnem ezt kimarshalozni fileba

mivel a B bundle classloadere nem ugyanaz, mint az A bundle classloadere, ezert nem fogja latni az annotaciokta a beaneken. csunya megoldas persze van, de ki szereti azt? ekkor eszembe jutott, hogy (bizonyos okok miatt) nem IBM JRE -vel futtattam a kodot, hanem az Oracle-ossel. atvaltottam az IBM-esre, es voila, mukodik rendesen.

ha valakinek persze ez a lehetoseg ne lenne meg (miert nem? ingyen letoltheto, es hasznalhato az IBM-es JVM!), akkor kicserelheti a metrot moxyra (a metro az Oracle fele RI, de ugy erzik mar ok is szerintem, hogy eljart felette az ido, ezert pl a 3.1.2-es Glassfish mar moxyval (is) mukodik, itt a teamlead blogja ezzel kapcsolatban)

Hozzászólások

Mutatsz egy minimum példát ami reprodukálja ezt a problémát?

Ohm, az nem az elvart mukodes, hogy ket, egymastol fuggetlen (nem oroklodesi viszonyban levo) classloader nem lathatja egymas cuccait? Hogyan oldja ezt meg az IBM-es JVM? Egy kicsit elmondhatnad bovebben...
--

Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal 

attol fugg, ki a parent classloader. ha mondjuk A a parent, B es C a child CL-ek, akkor B es C nem fogja megosztani egymas classait, de amit A betoltott, azt igen.

ezert szoktak chainelni altalaban CL-eket: A->B->C->D (ahol x->y jelentese az, hogy y-nek parentja a) eseten D latni fogja az osszes classt (ugyanis megprobalja a parenttel feloldatni elosszor, utana pedig megprobalja o feloldani).