Java Mailing List Archive

http://www.junlu.com/

Home » user.castor »

[castor-user] Not able to generate mapping files using MappingTool

Sarry

2012-03-20

Replies: Find Java Web Hosting

Author LoginPost Reply

I tried every single approach and every single 3rd party tool available to
generate the mapping files, but I am not able to generate them. I also tried
with the code given in example and made sure that the class is present in
the classpath, but still getting the same error.

Here is the code that I got from samples:

/*

* Created on Aug 11, 2004

*

* To change the template for this generated file go to

* Window - Preferences - Java - Code Generation - Code and Comments

*/



import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.Writer;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.exolab.castor.tools.MappingTool;
import org.exolab.castor.xml.XMLContext;

import com.rac.sims.domain.Person;

/**
*
* generate a Castor mapping file ready for editing
*/

public class CastorMapper {

 private MappingTool tool = null;

 private static Log log = LogFactory.getFactory().getInstance(
     CastorMapper.class);

 private static final String OUTPUT_FILE = "product-mapping.xml";

 public CastorMapper() {

   try {

     tool = new XMLContext().createMappingTool();

   }

   catch (Exception e) {

     log.error(e.getClass().getName(), e);

   }

 }

 public void createMapping(Class[] someClasses, String outputFile) {

   try {

     for (int i = 0; i < someClasses.length; i++) {

       tool.addClass(someClasses[i]);

     }

     File file = new File(outputFile);

     log.debug("Output will has been created at "
         + file.getAbsolutePath());

     OutputStream stream = new FileOutputStream(file);

     Writer writer = new OutputStreamWriter(stream);

     tool.write(writer);

     writer.close();

   }

   catch (Exception e) {

     log.error(e.getClass().getName(), e);

   }

 }

 public void createMapping(String aClass, String outputFile) {

   try {

     tool.addClass(aClass);

     File file = new File(outputFile);

     log.debug("Output will has been created at "
         + file.getAbsolutePath());

     OutputStream stream = new FileOutputStream(file);

     Writer writer = new OutputStreamWriter(stream);

     tool.write(writer);

     writer.close();

   }

   catch (Exception e) {

     log.error(e.getClass().getName(), e);

   }

 }

 public static void main(String[] args) {

   CastorMapper mapper = new CastorMapper();

   mapper.createMapping(Person.class.getName(), OUTPUT_FILE);

 }

}

Here is the error I am getting:

16:42:13 AbstractProperties [DEBUG] Properties loaded from classpath:
/org/castor/core/castor.core.properties
16:42:13 AbstractProperties [DEBUG] Properties loaded from classpath:
/org/castor/xml/castor.xml.properties
16:42:13 XMLClassDescriptorResolverImpl$DescriptorCacheImpl [DEBUG] New
instance!
16:42:13 XMLContext [DEBUG] Creating new MappingTool instance.
16:42:13 XMLClassDescriptorResolverImpl$DescriptorCacheImpl [DEBUG] Get
descriptor for: com.rac.sims.domain.Person found: null
16:42:13 XMLClassDescriptorResolverImpl$DescriptorCacheImpl [DEBUG] Get
descriptor for: com.rac.sims.domain.Person found: null
16:42:13 CastorXMLStrategy [DEBUG] Setting property:
org.exolab.castor.xml.util.ResolverStrategy.LoadPackageMappings to value:
true
16:42:13 CastorXMLStrategy [DEBUG] Setting property:
org.exolab.castor.xml.util.ResolverStrategy.useIntrospection to value: true
16:42:13 CastorXMLStrategy [DEBUG] Setting property:
org.exolab.castor.xml.util.ResolverStrategy.MappingLoader to value: null
16:42:13 CastorXMLStrategy [DEBUG] Setting property:
org.exolab.castor.xml.util.ResolverStrategy.Introspector to value:
org.exolab.castor.xml.Introspector@(protected)
16:42:13 CastorXMLStrategy [DEBUG] Setting property:
org.exolab.castor.xml.util.ResolverStrategy.ClassLoader to value:
sun.misc.Launcher$AppClassLoader@(protected)
16:42:13 CastorXMLStrategy [DEBUG] Setting property:
org.exolab.castor.xml.util.ResolverStrategy.LoadPackageMappings to value:
true
16:42:13 CastorXMLStrategy [DEBUG] Setting property:
org.exolab.castor.xml.util.ResolverStrategy.useIntrospection to value: true
16:42:13 CastorXMLStrategy [DEBUG] Setting property:
org.exolab.castor.xml.util.ResolverStrategy.MappingLoader to value: null
16:42:13 CastorXMLStrategy [DEBUG] Setting property:
org.exolab.castor.xml.util.ResolverStrategy.Introspector to value:
org.exolab.castor.xml.Introspector@(protected)
16:42:13 XMLClassDescriptorResolverImpl$DescriptorCacheImpl [DEBUG] Get
descriptor for: com.rac.sims.domain.Person found: null
16:42:13 AbstractResolverClassCommand [DEBUG] Now in method:
org.exolab.castor.xml.util.resolvers.ByMappingLoader resolving:
com.rac.sims.domain.Person
16:42:13 ByMappingLoader [DEBUG] No mapping loader specified
16:42:13 XMLClassDescriptorResolverImpl$DescriptorCacheImpl [DEBUG] Called
addAllDescriptors with null or empty descriptor map
16:42:13 XMLClassDescriptorResolverImpl$DescriptorCacheImpl [DEBUG] Get
descriptor for: com.rac.sims.domain.Person found: null
16:42:13 AbstractResolverPackageCommand [DEBUG] Now in resolve method:
org.exolab.castor.xml.util.resolvers.ByCDR resolving: com.rac.sims.domain
16:42:13 XMLClassDescriptorResolverImpl$DescriptorCacheImpl [DEBUG] Called
addAllDescriptors with null or empty descriptor map
16:42:13 AbstractResolverPackageCommand [DEBUG] Now in resolve method:
org.exolab.castor.xml.util.resolvers.ByPackageMapping resolving:
com.rac.sims.domain
16:42:13 XMLClassDescriptorResolverImpl$DescriptorCacheImpl [DEBUG] Called
addAllDescriptors with null or empty descriptor map
16:42:13 XMLClassDescriptorResolverImpl$DescriptorCacheImpl [DEBUG] Get
descriptor for: com.rac.sims.domain.Person found: null
16:42:13 AbstractResolverClassCommand [DEBUG] Now in method:
org.exolab.castor.xml.util.resolvers.ByDescriptorClass resolving:
com.rac.sims.domain.Person
16:42:13 ResolveHelpers [DEBUG] Ignored problem at loading class:
com.rac.sims.domain.PersonDescriptor through class loader:
sun.misc.Launcher$AppClassLoader@(protected):
java.lang.ClassNotFoundException: com.rac.sims.domain.PersonDescriptor
16:42:13 ResolveHelpers [DEBUG] Ignored problem at loading class:
com.rac.sims.domain.descriptors.PersonDescriptor through class loader:
sun.misc.Launcher$AppClassLoader@(protected):
java.lang.ClassNotFoundException:
com.rac.sims.domain.descriptors.PersonDescriptor
16:42:13 XMLClassDescriptorResolverImpl$DescriptorCacheImpl [DEBUG] Called
addAllDescriptors with null or empty descriptor map
16:42:13 XMLClassDescriptorResolverImpl$DescriptorCacheImpl [DEBUG] Get
descriptor for: com.rac.sims.domain.Person found: null
16:42:13 AbstractResolverClassCommand [DEBUG] Now in method:
org.exolab.castor.xml.util.resolvers.ByIntrospection resolving:
com.rac.sims.domain.Person
16:42:13 AbstractProperties [DEBUG] Properties loaded from classpath:
/org/castor/core/castor.core.properties
16:42:13 AbstractProperties [DEBUG] Properties loaded from classpath:
/org/castor/xml/castor.xml.properties
16:42:13 ByIntrospection [DEBUG] Found descriptor:
org.exolab.castor.xml.IntrospectedXMLClassDescriptor@(protected)
class: com.rac.sims.domain.Person; xml name: null
16:42:13 XMLClassDescriptorResolverImpl$DescriptorCacheImpl [DEBUG] Adding
descriptor class for: com.rac.sims.domain.Person descriptor:
org.exolab.castor.xml.IntrospectedXMLClassDescriptor@(protected)
class: com.rac.sims.domain.Person; xml name: null
16:42:13 XMLClassDescriptorResolverImpl$DescriptorCacheImpl [DEBUG] Get
descriptor for: com.rac.sims.domain.Person found:
org.exolab.castor.xml.IntrospectedXMLClassDescriptor@(protected)
class: com.rac.sims.domain.Person; xml name: null
16:42:13 CastorMapper [ERROR] java.lang.IllegalArgumentException
java.lang.IllegalArgumentException: No enum const class
org.exolab.castor.mapping.xml.types.BindXmlNodeType.element
 at java.lang.Enum.valueOf (Enum.java:196)
 at
org.exolab.castor.mapping.xml.types.BindXmlNodeType.valueOf (BindXmlNodeType.java:15)
 at org.exolab.castor.tools.MappingTool.addClass (MappingTool.java:408)
 at org.exolab.castor.tools.MappingTool.addClass (MappingTool.java:222)
 at org.exolab.castor.tools.MappingTool.addClass (MappingTool.java:201)
 at CastorMapper.createMapping(CastorMapper.java:95)
 at CastorMapper.main(CastorMapper.java:124)

If it's not going to be possible to generate like this? do you know any
other tool that can generate these mapping files for me?
--
Sent from the Castor - User mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe from this list, please visit:

  http://xircles.codehaus.org/manage_email


©2008 junlu.com - Jax Systems, LLC, U.S.A.