Team, 

IF I uncomment marshaller.setMapping(castorMapping) call , it does not seem
to make a differrence in the output.  I tried to follow the simple example
in the CASTOR site. 

Am I missing anything? There is a tip in the site saying " Are your class
descriptors compiled along with the source"? But I am using a mapping file
at runtime, rather than compile time descriptors.


EXPECTED OUTPUT:

xmlResult   :::  <?xml version="1.0" encoding="UTF-8"?>
<scheduleRenamed dir="ES">
</scheduleRenamed>

CURRENT OUTPUT:

xmlResult   :::  <?xml version="1.0" encoding="UTF-8"?>
<schedule>
    <direction>ES</direction>
</schedule>




import java.util.*;
import org.xml.sax.ContentHandler;
import org.exolab.castor.xml.Marshaller;
import org.exolab.castor.mapping.Mapping;
import org.apache.xml.serialize.*;

import com.cpships.vss.schedule.Schedule;
import com.cpships.vss.domain.Port;
import com.cpships.vss.domain.PortStop;

import java.io.*;
import java.net.*;

public class Test
{
    public static final String mappingFile = "vssmapping.xml";


        public void test() throws Exception{
                
                                PrintWriter pw = new
PrintWriter(System.out);

                                Mapping castorMapping = new Mapping();

                

                                URL vssMappingURL =
getClass().getClassLoader().getResource("vssmapping.xml");
                                System.out.println(" the mapping url loaded
is "+ vssMappingURL );

                                        InputStream is =
getClass().getClassLoader
().getResourceAsStream("vssmapping.xml");
                                        int avail = is.available();
                                        byte[] b = new byte[avail];
                                        int noRead = is.read(b);

                                        String isString = new String(b);
                                        System.out.println("Writing to
System.out");

                                        pw.write(isString);

        
castorMapping.loadMapping(vssMappingURL);
                
                                        StringWriter sw2 = new
StringWriter();
                                Marshaller marshaller = new Marshaller(sw2);

                                      marshaller.setMapping(castorMapping);
        
                                        Schedule schedule = new Schedule();
                                        schedule.setDirection("ES");
                                        marshaller.marshal( schedule, sw2
);
                              String xmlResult = sw2.toString();
                                System.out.println( "xmlResult   :::  " +
xmlResult );
                                        pw.close();
        }

    public static void main( String[] args )
    {
        try 
        {
                                Test test = new Test();
                                        test.test();
        } 
        catch ( Exception except ) 
        {
            except.printStackTrace( System.out );
        }
    }
}



MAPPING FILE..

<?xml version="1.0"?>
<!DOCTYPE mapping PUBLIC "-//EXOLAB/Castor Object Mapping DTD Version
1.0//EN"
                         "http://castor.exolab.org/mapping.dtd";>

<mapping>
        <class name="com.cpships.vss.schedule.Schedule">
                 <map-to xml="ScheduleRenamed"/>
                               <field name="direction"
                       type="java.lang.String">
                        <bind-xml name="dir" node="attribute"/>
                </field>
        </class>
</mapping><?xml version="1.0"?>




/* Generated by Together */

package com.cpships.vss.schedule;
import java.util.ArrayList;
import com.cpships.vss.domain.Voyage;
import com.cpships.vss.domain.Port;
import com.cpships.vss.domain.PortStop;


public class Schedule
{
    private String direction = null;

    public Schedule()
    {
    }

    public void setDirection( String direction )
    {
        this.direction = direction;
    }

    public String getDirection()
    {
        return this.direction;
    }
}

-----Original Message-----
From: Keith Visco [mailto:[EMAIL PROTECTED]
Sent: Monday, September 08, 2003 6:09 PM
To: [EMAIL PROTECTED]
Subject: Re: [castor-dev] Mapping Exception: setMapping Call not finding
the application class.



Hi Sathya,

Remove the "java:" from the classname and it should work for you.

--Keith


"Krishnasamy, Sathya" wrote:
> 
> Team,
> 
> I am getting the exception on the line marked in Red. If I comment that
> line, the marshalling works ( wothout the mapping info). But if I include
> the mapping, I get the error.
> 
> The class being referenced in part of an application jar file called
> common.jar, and is available in the same dir as Test.java
> 
> The classpath entry shows that the common.jar is set in the classpath.
> 
> C:\Projects\cvswork\vssweb\castorTest>dir
>  Volume in drive C has no label.
>  Volume Serial Number is 8C9E-8ADB
> 
>  Directory of C:\Projects\cvswork\vssweb\castorTest
> 
> 09/08/2003  05:26p      <DIR>          .
> 09/08/2003  05:26p      <DIR>          ..
> 06/03/2003  03:30p           1,141,033 castor-0.9.5-xml.jar
> 06/03/2003  03:30p           1,613,261 castor-0.9.5.jar
> 09/08/2003  04:49p                 255 castor.properties
> 09/08/2003  04:49p                 255 castor.properties.bak
> 09/08/2003  04:51p              24,560 common.jar
> 09/08/2003  10:27a               2,567 Copy of vssmapping.xml
> 07/30/2003  03:47a             445,345 dom4j.jar
> 09/08/2003  05:25p                 296 runTest.cmd
> 09/08/2003  05:26p                 150 setEnv.cmd
> 09/08/2003  05:25p                 296 setEnv.cmd.bak
> 09/08/2003  05:26p               2,366 Test.class
> 09/08/2003  05:13p               2,756 Test.java
> 09/08/2003  05:12p               2,756 Test.java.bak
> 09/08/2003  04:07p                 538 vssmapping.xml
> 09/08/2003  04:04p                 538 vssmapping.xml.bak
>               15 File(s)      3,236,972 bytes
>                2 Dir(s)  27,528,147,456 bytes free
> 
> C:\Projects\cvswork\vssweb\castorTest>set classpath
> classpath =
>
;./castor-0.9.5-xml.jar;./castor-0.9.5.jar;./common.jar;./dom4j.jar;c:\xmlli
> bs\lib\crims
> on.jar;c:\xmllibs\lib\xerces.jar;.;
> 
> C:\Projects\cvswork\vssweb\castorTest>
> 
> Do I need any additional configuration ?
> 
> Help would be appreciated.
> 
> Thanks,
> Sathya
> 
> org.exolab.castor.mapping.MappingException: Could not find the class
> java:com.cpships.vss.schedule.S
> chedule
>         at
>
org.exolab.castor.mapping.loader.MappingLoader.createDescriptor(MappingLoade
> r.java:341)
>         at
>
org.exolab.castor.xml.XMLMappingLoader.createDescriptor(XMLMappingLoader.jav
> a:192)
>         at
>
org.exolab.castor.mapping.loader.MappingLoader.loadMapping(MappingLoader.jav
> a:233)
>         at org.exolab.castor.mapping.Mapping.getResolver(Mapping.java:291)
>         at org.exolab.castor.mapping.Mapping.getResolver(Mapping.java:246)
>         at
org.exolab.castor.xml.Marshaller.setMapping(Marshaller.java:512)
>         at Test.test(Test.java:56)
>         at Test.main(Test.java:74)
> 
> Test.java
> 
> import java.util.*;
> import org.xml.sax.ContentHandler;
> import org.exolab.castor.xml.Marshaller;
> import org.exolab.castor.mapping.Mapping;
> import org.apache.xml.serialize.*;
> 
> import com.cpships.vss.schedule.Schedule;
> import com.cpships.vss.domain.Port;
> import com.cpships.vss.domain.PortStop;
> 
> import java.io.*;
> import java.net.*;
> 
> public class Test
> {
>     public static final String mappingFile = "vssmapping.xml";
> 
>         public void test() throws Exception{
> 
>                 System.out.println(" ............  1 ");
> 
>                         System.out.println(" ............  2 ");
> 
>                                 //Mapping castorMapping = new
> Mapping(getClass().getClassLoader());
>                                 Mapping castorMapping = new Mapping();
> 
>                 System.out.println(" ............  3  mapping
> getClass().getClassLoader()  is " + getClass().getClassLoader() );
> 
>                                 URL vssMappingURL =
> getClass().getClassLoader().getResource("vssmapping.xml");
>                                 System.out.println(" the mapping url
loaded
> is "+ vssMappingURL );
> 
>                                 castorMapping.loadMapping(vssMappingURL);
>                                 System.out.println(" ............  4 ");
> 
>                                 StringWriter sw2 = new StringWriter();
>                                     Marshaller marshaller = new
> Marshaller(sw2);
>                                 System.out.println(" ............  5 ");
> 
>                                 marshaller.setMapping(castorMapping);
> 
>                                 System.out.println(" ............  6 ");
>                                 Schedule schedule = new Schedule();
>                                 schedule.setDirection("E");
>                                 System.out.println(" Schedule class loader
> is " + schedule.getClass().getClassLoader());
>                                 System.out.println(" ............  7  " +
> schedule.getDirection());
>                                 marshaller.marshal( schedule, sw2  );
>                                 String xmlResult = sw2.toString();
> 
>                 System.out.println( "xmlResult   :::  " + xmlResult );
>         }
> 
>     public static void main( String[] args )
>     {
>         try
>         {
>                                 Test test = new Test();
>                                 test.test();
>         }
>         catch ( Exception except )
>         {
>             except.printStackTrace( System.out );
>         }
>     }
> }
> 
> Mapping file..
> 
> <?xml version="1.0"?>
> <!DOCTYPE mapping PUBLIC "-//EXOLAB/Castor Object Mapping DTD Version
> 1.0//EN"
>                          "http://castor.exolab.org/mapping.dtd";>
> 
> <mapping>
>         <class name="java:com.cpships.vss.schedule.Schedule">
>                 <map-to xml="Schedule"/>
> 
>                                <field name="direction"
>                        type="java.lang.String"
>                        direct="true">
>                         <bind-xml name="reference" node="attribute"/>
>                 </field>
>         </class>
> 
> </mapping>
> 
> -----------------------------------------------------------
> If you wish to unsubscribe from this mailing, send mail to
> [EMAIL PROTECTED] with a subject of:
>         unsubscribe castor-dev

----------------------------------------------------------- 
If you wish to unsubscribe from this mailing, send mail to
[EMAIL PROTECTED] with a subject of:
        unsubscribe castor-dev

----------------------------------------------------------- 
If you wish to unsubscribe from this mailing, send mail to
[EMAIL PROTECTED] with a subject of:
        unsubscribe castor-dev

Reply via email to