I'm trying to get CXF working for the first time. Actually I've got the
basic client and server examples working and talking to each other, but I'm
getting a MarshallingError: 'YourClass is not known in this context' error.
I'm trying to create services around the beans in a jar (created by another
party), so we don't have access to the source code of the beans to annotate
them. From what I've read so far, that means I need to use an aegis
mapping, right? Also, these classes are far from POJOs, they are complex
business objects with static methods, search methods, etc. But they do have
properties that I would like to expose via the service.
I've created a MyClass.aegis.xml file (in the same package as the
client/server/intrfc/impl) in an attempt to map one of these objects, but
I'm still getting the MarshallingError.
What would an aegis.xml file look like for this? I've tried using the class
name as the name of the mapping, with and without the full package name,
like this
<mappings>
<mapping name="com.company.MyClass">
<property name="description" mappedName="Description"
type="com.company.MultiString"/>
</mapping>
</mappings
MultiString is another class from the 3rd party jar. I assume I'll have to
map that as well, but I tried the above hoping it would get rid of the
'yourclass not known in this context' error, and instead give me a different
error like 'MultiString not defined'.
Then I realized I hadn't changed the server code to use aegis, as directed
on the aegis-databinding.html page of the wiki. Once I did that, upon
startup of the server I immediately got the NoClassDefFoundError for
org.jdom.JDOMException. I'm running in Eclipse 3.3 so I went into the Run
dialog for the server class and added to its classpath all the dependencies
listed for CXF. Still got the error. I've googled the JDOMException and
can't find which jar it's in. Anyone know?
Here's my server class:
package com.mycompany.api.services;
import org.apache.cxf.aegis.databinding.AegisDatabinding;
import org.apache.cxf.frontend.ServerFactoryBean;
public class FullOrderServer {
protected FullOrderServer() throws Exception {
System.out.println("Starting FullOrderServer");
ServerFactoryBean sf = new ServerFactoryBean();
sf.setServiceClass(FullOrderService.class);
sf.setAddress("http://localhost:9000/fullOrderService");
sf.getServiceFactory().setDataBinding(new AegisDatabinding());
sf.create();
// END SNIPPET: publish
}
public static void main(String args[]) throws Exception {
new FullOrderServer();
System.out.println("FullOrderServer ready...");
Thread.sleep(5 * 60 * 1000);
System.out.println("FullOrderServer exiting");
System.exit(0);
}
}
any suggestions? Thanks
--
View this message in context:
http://www.nabble.com/newb-question---JDOMException-with-aegis-binding--tf4767403.html#a13636169
Sent from the cxf-user mailing list archive at Nabble.com.