cxf-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Liu, Jervis" <j...@iona.com>
Subject RE: CodeFirstTest [was Re: FW: Java first question]
Date Wed, 13 Dec 2006 17:31:34 GMT
Hi, I am trying to understand how the code first approach works on a client side. Presumably
what the code first implies on a client side is that we can not do any code generation from
WSDL, and users shall already have an object model in place.  What I mean by the object model
is the user defined types, such as Person, Address etc. It can be written manually in POJO
or can be generated previously from JAXB, xmlbean etc. So my question is how user defined
types are supported, more precisely, how code first works under following scenarios:

A. Code first client with an object model written in JAXB: In order to do the marshal/unmarshal
for user defined types, we can either provide the JAXB context with the location of these
type classes or provide JAXB with the schema file. In the latter case, the schema file can
be the WSDL published on the server side. 

B. Code  first client with an object model written in xmlbean or other data bindings: This
should be same as JAXB case, so it should work (CXF needs to support multiple data bindings
both in tooling and runtime though).

C. Code  first client with user defined types written in POJO: I don't think this works, right?
At least our current javatowsdl tool does not work with user defined POJO types.

BTW, why JAXB does not support List by default? I read the JAXB spec, it says the java.util.List
must be supported. Is this a JAXB implementation issue?

Thanks,
Jervis

> -----Original Message-----
> From: Johnson, Eric [mailto:Eric.Johnson@iona.com]
> Sent: Tuesday, December 12, 2006 10:38 PM
> To: cxf-dev@incubator.apache.org
> Subject: RE: CodeFirstTest [was Re: FW: Java first question]
> 
> 
> My simple test case involved a class with three fields: two 
> strings and
> float. The consumer and service both run like a charm except that the
> object returned to the consumer mainline is empty.... It is 
> instantiated
> but has no data.
> The response sent by the service impl does have data in it... 
> 
> > -----Original Message-----
> > From: Willem Jiang [mailto:ning.jiang@iona.com] 
> > Sent: Monday, December 11, 2006 9:06 PM
> > To: cxf-dev@incubator.apache.org
> > Subject: Re: CodeFirstTest [was Re: FW: Java first question]
> > 
> > Hi Dan,
> > 
> > That comes to my question. If there are some complex types 
> > used in SEI's method, and they can not be handled by JAXB 
> by default. 
> > How can  we  make sure the JAXB can make the xml marshal and 
> > unmarshal right without get the type info from the SEI's annotation?
> > 
> > Willem.
> > 
> > Dan Diephouse wrote:
> > 
> > > No, JAXB can't deal with List<String> - but you can make 
> it work. I 
> > > managed to have it working at one point. Its a hack. You need to 
> > > convert it to an array and tell JAXB that the type class is 
> > String[]. 
> > > I will look at the test and see if I can get it working again...
> > >
> > > - Dan
> > >
> > > On 12/12/06, Willem Jiang <ning.jiang@iona.com> wrote:
> > >
> > >>
> > >> Hi Dan,
> > >>
> > >> You can take a look at the test which I add for the 
> CodeFirstTest 
> > >> client side test.
> > >> It is org.apache.cxf.jaxws.CodeFirstTest.testClient(), I 
> commented 
> > >> the last 2 line codes which can not work yet.
> > >> AFAIK, JAXB can't deal with the List<string> as default.
> > >> Can you point out what else I should do to make the test work?
> > >>
> > >> Regards,
> > >>
> > >> Willem.
> > >>
> > >> Dan Diephouse wrote:
> > >>
> > >> > Hi Willem,
> > >> >
> > >> > Sorry for the delayed response. Can you explain more 
> > what you mean 
> > >> > or give an example? I'm not sure I understand.
> > >> > Thanks,
> > >> > - Dan
> > >> >
> > >> > On 12/7/06, Willem Jiang <ning.jiang@iona.com> wrote:
> > >> >
> > >> >>
> > >> >> Hi Eric and Dan,
> > >> >>
> > >> >> I wrote a unit test in the CodeFirstTest, and found 
> that in code
> > >> first
> > >> >> mode the client side can't deal with the complex type 
> result or 
> > >> >> parameters' marshal and unmarshal.
> > >> >>
> > >> >> Eric , IMO the WSDL first option could be the best solution.
> > >> >>
> > >> >> Dan , I have no ideal about how to build up the type 
> > info (for XML 
> > >> >> marshal an unmarshal) in the parameters without read 
> annotation 
> > >> >> from SEI, Can you point it out?
> > >> >>
> > >> >> Cheers,
> > >> >>
> > >> >> Willem.
> > >> >>
> > >>
> > >>
> > >
> > >
> > 
> > 
> 

Mime
View raw message