Hi Marko, Marko Kurm wrote: > I understand that the exception actually comes from the line: > > " xmlContextObject.addMapping(mapping);" > > Now i need to load the org.castor.mapping.* classes using my own > classloader. Is there a way to do that or should i load the mapping > in another way? You can always supply a ClassLoader instance to the Mapping class upon construction, using new Mapping(classLoader). That should (hopefully) make a difference.
Werner > > I also investigated the possibility to load "Mapping" file using my > custom classloader, but since the class is already loaded and i need > to reload it, i would have to use interface or sublassing to reload > it. But "Mapping" class is final, so i can't do that. > > > > -----Original Message----- From: Marko Kurm Sent: Wednesday, April > 29, 2009 1:31 PM To: [email protected] Subject: RE: > [castor-user] Castor ClassLoader problems > > Indeed there is a "setClassLoader(ClassLoader)" in Unmarshaller. Now > i tried using it like this: > > ---------------------------------------------------------------------- > XMLContext xmlContextObject = new XMLContext(); > xmlContextObject.addMapping(mapping); Unmarshaller unmarshaller = > xmlContextObject.createUnmarshaller(); > unmarshaller.setClassLoader(classLoader); Marshaller marshaller = > xmlContextObject.createMarshaller(); > ---------------------------------------------------------------------- > > > But it still throws the same error stack: > > java.lang.NullPointerException at > org.castor.core.util.Configuration.getObjectArray(Configuration.java:677) > at > org.castor.mapping.MappingLoaderRegistry.<init>(MappingLoaderRegistry.java:54) > at > org.castor.mapping.MappingUnmarshaller.<init>(MappingUnmarshaller.java:80) > at org.exolab.castor.xml.XMLContext.addMapping(XMLContext.java:79) > > > Am i setting the classloader correctly? > > Marko Kurm > > > -----Original Message----- From: Werner Guttmann > [mailto:[email protected]] Sent: Wednesday, April 29, 2009 12:53 > PM To: [email protected] Subject: Re: [castor-user] Castor > ClassLoader problems > > Hi Marko, > > yes, you are right, both XMLContext and Marshaller do not expose such > methods (directly). In other words, thou shall not quote top of > one's head .. ;-). > > But Unmarshaller exposes Unmarshaller.setClassLoader(ClassLoader) > which should enable you to get past your problems. > > Werner > > Marko Kurm wrote: >> Thank You for the reply! >> >> I can't find the method "setClassLoader(ClassLoader)" on the >> Marshaller/Unmarshaller classes nor the XMLContext class. I am >> using Castor 1.2. I only see a "setClassLoader(ClassLoader)" on >> "Marshaller.getInternalContext().setClassLoader()...". Am i missing >> something? >> >> >> >> >> Marko Kurm tarkvara tehniline konsultant (Livelink) MicroLink Eesti >> AS mob: +372 53497718 faks: +372 650 1751 [email protected] >> >> >> >> >> >> MicroLinki klienditeenindus: 800 99 44 [email protected] | >> www.microlink.ee -----Original Message----- From: Werner Guttmann >> [mailto:[email protected]] Sent: Tuesday, April 28, 2009 8:30 PM >> To: [email protected] Subject: Re: [castor-user] Castor >> ClassLoader problems >> >> Hi Marko, >> >> you have mentioned that your plugin uses its own classloader to >> load your domain classes, correct. If that's the case, you can >> always pass this classloader to Castor's Unmarshaller, Marshaller >> and XMLContext() classes by using the corresponding >> setClassLoader(ClassLoader) methods. >> >> I suppose that should make a difference in your case. >> >> Cheers Werner >> >> Marko Kurm wrote: >>> Hi, >>> >>> It has been a while, but the problem persists. So i thought i'd >>> pick it up again. >>> >>> Werner, i have not set the custom classloader for Castor in any >>> way. How can i do that? >>> >>> Marko Kurm tarkvara tehniline konsultant (Livelink) MicroLink >>> Eesti AS mob: +372 53497718 faks: +372 650 1751 >>> [email protected] >>> >>> >>> >>> >>> MicroLinki klienditeenindus: 800 99 44 [email protected] | >>> www.microlink.ee >>> >>> -----Original Message----- From: Werner Guttmann >>> [mailto:[email protected]] Sent: Thursday, February 12, >>> 2009 4:45 PM To: [email protected] Subject: Re: >>> [castor-user] Castor ClassLoader problems >>> >>> Hi, >>> >>> are you setting the custom ClassLoader on Castor in any way ? >>> >>> Werner >>> >>> Marko Kurm wrote: >>>> Hi, >>>> >>>> Im developed a litte java plugin that uses castor to Access a >>>> web-service. It worked perfectly. >>>> >>>> Now i’m trying to incorporate that plugin into an application >>>> that uses it’s own custom classLoader and i keep getting the >>>> following error: >>>> >>>> org.castor.core.util.Configuration.getObjectArray(Configuration.java:677) >>>> java.lang.NullPointerException >>>> org.castor.mapping.MappingLoaderRegistry.<init>(MappingLoaderRegistry.java:54) >>>> >>>> >>>> org.castor.mapping.MappingUnmarshaller.<init>(MappingUnmarshaller.java:80) >>>> >>>> >>>> org.exolab.castor.xml.Unmarshaller.setMapping(Unmarshaller.java:540) >>>> >>>> >>>> ee.microlink.livelink.mobilesign.util.XmlUtil.configure(XmlUtil.java:87) >>>> >>>> >>>> ee.microlink.livelink.mobilesign.util.XmlUtil.<init>(XmlUtil.java:102) >>>> >>>> >>>> ee.microlink.livelink.mobilesign.MobileSignImpl.prepareMobileSign(MobileSignImpl.java:122) >>>> >>>> >>>> >>>> It seems that the NullPointerException is caused because the >>>> „getClass().getClassLoader());“ returns null: >>>> >>>> public MappingLoaderRegistry(final Configuration config) { >>>> Object[] objects = config.getObjectArray( >>>> CoreConfiguration.MAPPING_LOADER_FACTORIES, >>>> getClass().getClassLoader()); for (int i = 0; i < >>>> objects.length; i++) { _mappingLoaderFactories.add(objects[i]); >>>> } } >>>> >>>> Anyone have any suggestions on how to resolve this problem? >>>> >>>> Best Regards! Marko Kurm >>> --------------------------------------------------------------------- >>> To unsubscribe from this list, please visit: >>> >>> http://xircles.codehaus.org/manage_email >>> >>> >> --------------------------------------------------------------------- >> To unsubscribe from this list, please visit: >> >> http://xircles.codehaus.org/manage_email >> >> > > --------------------------------------------------------------------- > To unsubscribe from this list, please visit: > > http://xircles.codehaus.org/manage_email > > --------------------------------------------------------------------- To unsubscribe from this list, please visit: http://xircles.codehaus.org/manage_email

