You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@cxf.apache.org by BrianP <Br...@firstdatabank.com> on 2007/11/07 22:12:43 UTC

newb question - JDOMException with aegis binding?

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.


Re: newb question - JDOMException with aegis binding?

Posted by BrianP <Br...@firstdatabank.com>.
The dependencies list on
http://cwiki.apache.org/CXF20DOC/a-simple-jax-ws-service.html was what I was
referring to.



dkulp wrote:
> 
> On Wednesday 07 November 2007, BrianP wrote:
>> Thanks! Got it and it's working.  Why is that not on the dependency
>> list?
> 
> What dependency list?
> 
> It's in the dependencies for the aegis databinding pom so it should pull 
> in.   It's also shipped in our lib directory and is in the classpath 
> entry of the manifest jar.
> 
> Dan
> 
> 
>>
>> With that, it generated a bunch of foo.aegis.xml not found messages
>> for each of the property types of the FullOrder, including the
>> MultiString one.
>>
>> Is there a way to make it ignore most of the properties of my class
>> except the ones I want to expose?  Maybe I should start a new thread,
>> since I'm past the JDOMException issue.
>>
>> Also, I went a couple steps further and got another
>> NoClassDefFoundError, this time for jaxen.  I found this jar, but it
>> is also not on the dependencies list.
>>
>>
>> You need jdom-1.0.jar.
> 
> 
> 
> -- 
> J. Daniel Kulp
> Principal Engineer
> IONA
> P: 781-902-8727    C: 508-380-7194
> daniel.kulp@iona.com
> http://www.dankulp.com/blog
> 
> 

-- 
View this message in context: http://www.nabble.com/newb-question---JDOMException-with-aegis-binding--tf4767403.html#a13667433
Sent from the cxf-user mailing list archive at Nabble.com.


Re: newb question - JDOMException with aegis binding?

Posted by Daniel Kulp <dk...@apache.org>.
On Wednesday 07 November 2007, BrianP wrote:
> Thanks! Got it and it's working.  Why is that not on the dependency
> list?

What dependency list?

It's in the dependencies for the aegis databinding pom so it should pull 
in.   It's also shipped in our lib directory and is in the classpath 
entry of the manifest jar.

Dan


>
> With that, it generated a bunch of foo.aegis.xml not found messages
> for each of the property types of the FullOrder, including the
> MultiString one.
>
> Is there a way to make it ignore most of the properties of my class
> except the ones I want to expose?  Maybe I should start a new thread,
> since I'm past the JDOMException issue.
>
> Also, I went a couple steps further and got another
> NoClassDefFoundError, this time for jaxen.  I found this jar, but it
> is also not on the dependencies list.
>
>
> You need jdom-1.0.jar.



-- 
J. Daniel Kulp
Principal Engineer
IONA
P: 781-902-8727    C: 508-380-7194
daniel.kulp@iona.com
http://www.dankulp.com/blog

RE: newb question - JDOMException with aegis binding?

Posted by BrianP <Br...@firstdatabank.com>.
Thanks! Got it and it's working.  Why is that not on the dependency list?

With that, it generated a bunch of foo.aegis.xml not found messages for each
of the property types of the FullOrder, including the MultiString one.

Is there a way to make it ignore most of the properties of my class except
the ones I want to expose?  Maybe I should start a new thread, since I'm
past the JDOMException issue.

Also, I went a couple steps further and got another NoClassDefFoundError,
this time for jaxen.  I found this jar, but it is also not on the
dependencies list.


You need jdom-1.0.jar.


-- 
View this message in context: http://www.nabble.com/newb-question---JDOMException-with-aegis-binding--tf4767403.html#a13636856
Sent from the cxf-user mailing list archive at Nabble.com.


RE: newb question - JDOMException with aegis binding?

Posted by Benson Margulies <bi...@basistech.com>.
You need jdom-1.0.jar.

> -----Original Message-----
> From: BrianP [mailto:Brian_Preston@firstdatabank.com]
> Sent: Wednesday, November 07, 2007 4:13 PM
> To: cxf-user@incubator.apache.org
> Subject: newb question - JDOMException with aegis binding?
> 
> 
> 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.