cxf-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Dan Diephouse" <...@envoisolutions.com>
Subject Re: CodeFirstTest [was Re: FW: Java first question]
Date Sat, 16 Dec 2006 14:40:57 GMT
Hi Jervis,

Comments inline...

On 12/13/06, Liu, Jervis <jliu@iona.com> wrote:
>
> 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.


Currently JAXB types are loaded from the service model. See
JAXBContextInitializer. We basically loop over every MessagePartInfo and add
the class to the context. If its a List, we change it to any array type.

I'm not sure what you mean by providing JAXB with a schema file... can you
explain?

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).


Databindings are initialized in Databinding.initialize(). In the JAXB case
(both server and client), the context is set up via the
JAXBContextInitializer. Then the service model is updated with JAXB info (
i.e. MessagePartInfo.typeName/elementName) with the
JAXBServiceModelInitializer.

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.


This works fine with the servicemodel. It uses the same process as the
above...

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?
>
> No idea... I'm just telling you what Koshuke (JAXB author) told me...

Cheers,
- Dan
-- 
Dan Diephouse
Envoi Solutions
http://envoisolutions.com | http://netzooid.com/blog

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message