Could be same problem I hit a while back, a class loader issue. A fix was
put in so you can set the class loader the marshaller uses.

As a temp fix I did:

public class CastorMarshallerWithXMLContext extends CastorMarshaller
{
  private String[] packageDescriptors;
  
  public void setPackageDescriptors(String[] packages)
  {
    this.packageDescriptors = packages;
  }

  @Override
  protected XMLContext createXMLContext(Resource[] arg0, Class arg1) throws
MappingException, IOException, ResolverException
  {
    XMLContext context = super.createXMLContext(arg0,arg1);
 
context.getInternalContext().setClassLoader(AcceptQuote.class.getClassLoader
());
    
    if (packageDescriptors != null)
    {
      context.addPackages(packageDescriptors);
    }
    return context;
  }
  
}


Note I am using a castor generated class AcceptQuote to set the class
loader.

It's a horrible hack but it works.

Hope it helps,

Paul

-----Original Message-----
From: sric1 [mailto:[email protected]] 
Sent: 27 July 2010 21:29
To: [email protected]
Subject: [castor-user] castor generated descriptors with Spring


Hello,

I am using Spring2.5.6 and Castor 1.3.1 for my webservice. I have used
Source generator to generate my java classes from XSD. Everything is working
fine in the local server(WAS on RAD). But when i deploy it on the server, It
is complaining that it cannot find castor generated classes. I am not sure
what is wrong. I am using Maven to manage dependencies from a repository of
jars. 

<code> 
<bean id="webServiceTemplate"
class="org.springframework.ws.client.core.WebServiceTemplate">
                <constructor-arg ref="messageFactory" />
                <property name="defaultUri" value="${uri}" />
                <property name="marshaller" ref="marshaller" />
                <property name="unmarshaller" ref="marshaller" />
        </bean>

        <bean id="marshaller"
class="org.springframework.oxm.castor.CastorMarshaller" />
</code>


Then i wrote a class to extend CastorMarshaller as below. This class adds
the castor generated descriptor package to the XMLContext. But i still get
the same problem. After receiving XML message, when castor tries to convert
it to java object, it throws an exception saying castor generated classes
cannot be found.
<code>
public class CustomCastorMarshaller extends CastorMarshaller {

        protected XMLContext createXMLContext(Resource[] mappingLocations,
                        Class targetClass) throws MappingException,
IOException,
                        ResolverException {
                XMLContext context = new XMLContext();
                logger.debug("Adding org.aamc.amspullservice.oxm.castor
package to
XMLContext");
                context.addPackages(new String[] {
"org.test.oxm.castor.descriptors" });
                if (!ObjectUtils.isEmpty(mappingLocations)) {
                        Mapping mapping = new Mapping();
                        for (int i = 0; i < mappingLocations.length; i++) {
                                mapping.loadMapping(SaxUtils
        
.createInputSource(mappingLocations[i]));
                        }
                        context.addMapping(mapping);
                }
                if (targetClass != null) {
                        context.addClass(targetClass);
                }
                return context;
        }

}
</code>
<code>
<bean id="marshaller" class="org.test.CustomCastorMarshaller " />
</code>

Note: i have .castor.cdr file in my castor generated package. Any help would
be greatly appreciated.
-- 
View this message in context:
http://old.nabble.com/castor-generated-descriptors-with-Spring-tp29280360p29
280360.html
Sent from the Castor - User mailing list archive at Nabble.com.


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

    http://xircles.codehaus.org/manage_email



__________ NOD32 5318 (20100727) Information __________

This message was checked by NOD32 antivirus system.
http://www.eset.com



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

    http://xircles.codehaus.org/manage_email


Reply via email to