Hi Marcelo, Marcelo Henrique wrote: > Thanks Werner by the answer, but in my project I can't use unstable > version, when the version 1.2.1 gonna be stable I'll update the > Castor. I would not call a snapshot release of any Castor version (and 1.2.1 in particular) unstable, as we treat it as a release. It undergoes the same testing as a proper (gold) release, but we do *not* upload e.g. HTML docs and/or publish official announcements. But then again, you seem to have your policies, and I shall not argue against those.
> So, until there, and this is my question, How is the better > thing to do to set InitialContext of ClassDescriptorResolver? To use > BackWardCompatibilityContext as the itself documentation say is not a > good choice but we have other options ? For the time being, (and that will include all minor releases of Castor 1.2), BackwardsCompatibilityContext will not go away. This might change with a new major release. If you are just looking at bridging the time until 1.2.1 will have been released, you are completely safe. Regards Werner > > Thanks, > > *-----------------------------------------------------* || Marcelo > Henrique De Oliveira Lima || Ciência da Computação - UECE || Linux > User #399803 || Slackware GNU/Linux Powered! > *-----------------------------------------------------* > > > > ----- Mensagem original ---- De: Werner Guttmann > <[EMAIL PROTECTED]> Para: [email protected] Enviadas: > Quarta-feira, 28 de Maio de 2008 17:23:44 Assunto: Re: Res: > [castor-user] Changing classloader in marshaller > > As already mentioned elsewhere, the issue with an NPE in > ClassDescriptorResolver has already been reported shortly after 1.2 > has been released, and has already been fixed in SVN trunk. > > Have a look at the latest 1.2.1 snapshot release, as this should work > straight out of the box. > > Werner > > Marcelo Henrique wrote: >> Hi, I had the same problem with InitialContext null in >> ClassDescriptorResolver too. Thus I initilize it with >> BackwardCompatibilityContext but I've seen that >> BackwardCompatibilityContext will be unused in the future versions >> of Castor so, What's the better way of use ClassDescriptorResolver >> or how can I initilize the InitialContext without use >> BackwardCompatibilityContext? >> >> My Code: >> >> Mapping mapping = getMapping( mapeamento ); >> XMLClassDescriptorResolver classDescriptorResolver = ( >> XMLClassDescriptorResolver ) >> ClassDescriptorResolverFactory.createClassDescriptorResolver( >> BindingType.XML ); classDescriptorResolver.setInternalContext( new >> BackwardCompatibilityContext() ); MappingUnmarshaller >> mappingUnmarshaller = new MappingUnmarshaller(); MappingLoader >> mappingLoader = mappingUnmarshaller.getMappingLoader( mapping, >> BindingType.XML ); classDescriptorResolver.setMappingLoader( >> mappingLoader ); >> >> Thanks, >> >> *-----------------------------------------------------* || Marcelo >> Henrique De Oliveira Lima || Ciência da Computação - UECE || Linux >> User #399803 || Slackware GNU/Linux Powered! >> *-----------------------------------------------------* >> >> >> >> ----- Mensagem original ---- De: brandywheat >> <[EMAIL PROTECTED]> Para: [email protected] >> Enviadas: Quarta-feira, 28 de Maio de 2008 6:45:49 Assunto: Re: >> [castor-user] Changing classloader in marshaller >> >> >> Hi, I have this working - I found that I had a couple of problems, >> first the code shown on the web gives a null pointer exception >> (because the internal context is not set in classDR). The second >> was that I was calling m.marshall(this, writer) and I did not >> realize that this was a static method, once I changed this to the >> m.marshall(this) it worked .... the final code is then: >> >> public void export(Writer writer) throws MarshalException, >> ValidationException { try { Marshaller m = new Marshaller(); >> XMLClassDescriptorResolver classDR = >> (org.exolab.castor.xml.XMLClassDescriptorResolver) >> >> ClassDescriptorResolverFactory.createClassDescriptorResolver(BindingType.XML); >> classDR.setInternalContext(m.getInternalContext()); >> >> classDR.setClassLoader(Thread.currentThread().getContextClassLoader()); >> classDR.addClass("com.xxxx.domain.Theme"); m.setResolver(classDR); >> m.setWriter(writer); m.marshal(this); } catch (....) } >> >> Many thanks, Brian >> >> >> Werner Guttmann wrote: >>> Hi, >>> >>> how about trying things with the XMLClassDescriptorResolver >>> document first, to get and/or keep you going. >>> >>> Have a look at the XML best practise document at >>> http://www.castor.org, and let us know whether this is enough >>> information. >>> >>> Werner >>> >>> brandywheat wrote: >>>> Hi, I do not have enough experience with castor (yet) to see >>>> either method being beneficial over the other ... so I will >>>> take what ever you suggest. Working from the snapshot is not an >>>> issue, nor is waiting a couple of days a problem - what ever is >>>> best for you - I'll be happy when it is working! >>>> >>>> I do have a couple of class to marshal and these include quite >>>> a few classes (30+) which are included in the output structure >>>> - I am not sure if this would be an issue with option b (do I >>>> have to add a classDescriptionResolver for each class ?). >>>> >>>> Many, many thanks for the super response on this, I am suitably >>>> impressed :-) >>>> >>>> Thanks, Brian >>>> >>>> >>>> >>>> Werner Guttmann wrote: >>>>> Well, in that case, there's two options: >>>>> >>>>> a) switch to XMLContext (where we'd have to add a >>>>> setClassLoader() method, which is sufficiently easy; if you >>>>> are fine working against a snapshot releaswe, this could be >>>>> done within one or two days). >>>>> >>>>> b) Set an XMLClassDescriptorResolver on your Marshaller, and >>>>> use XMLClassDescriptorResolver.setClassLoader() to set a >>>>> custom class loader. >>>>> >>>>> Does this make sense ... >>>>> >>>>> Werner >>>>> >>>>> >>>>> brandywheat wrote: >>>>>> Hi, I'm on the latest castor version (1.2) ... >>>>>> >>>>>> Thanks, Brian >>>>>> >>>>>> >>>>>> >>>>>> Werner Guttmann wrote: >>>>>>> Hi, >>>>>>> >>>>>>> What version of Castor are you using ? There's a solution >>>>>>> to this problem, but it depends on whether you are on a >>>>>>> release that has support for XMLContext already (or not). >>>>>>> >>>>>>> >>>>>>> Werner >>>>>>> >>>>>>> brandywheat wrote: >>>>>>>> Hi, I am currently having problems with the castor >>>>>>>> marshaller and classloaders. My code works in the unit >>>>>>>> tests but fails once included in a netbeans RPC - the >>>>>>>> problem looks to be the classloader and the modules >>>>>>>> within the RPC. >>>>>>>> >>>>>>>> I can resolve the issue of the classloader with the >>>>>>>> code: Marshaller m = new Marshaller(); Mapping mapping >>>>>>>> = new >>>>>>>> Mapping(Thread.currentThread().getContextClassLoader()); >>>>>>>> mapping.loadMapping("c:\\temp\\mapping.xml"); >>>>>>>> m.setMapping(mapping); m.marshal(this, writer); >>>>>>>> >>>>>>>> But this forces me to write a mapping file, which I do >>>>>>>> not have available and do not really want to generate. >>>>>>>> >>>>>>>> Is it possible to set the classloader for the >>>>>>>> marshaller without having to define a mapping file, >>>>>>>> e.g. have it use the default structure it would >>>>>>>> generated without a mapping file? (If I skip the >>>>>>>> loadMapping then the setMapping gives an exception >>>>>>>> saying a mapping must be loaded first....) >>>>>>>> >>>>>>>> Thanks in Advance, Brian >>>>>>>> >>>>>>> --------------------------------------------------------------------- >>>>>>> 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 > > > Abra sua conta no Yahoo! Mail, o único sem limite de espaço para > armazenamento! http://br.mail.yahoo.com/ --------------------------------------------------------------------- To unsubscribe from this list, please visit: http://xircles.codehaus.org/manage_email

