Based on Ron's previous questions, and Bruce's comments, I think that what's
called for here is a tutorial on the theme of:

"So, you know what a web service is. How are these things constructed in
Java?"

That gets you JAX-WS + JAXB.

I don't think it's possible to make hide or hair of the allinaceous nature
of CXF without having that sort of picture of what it is trying to
accomplish. Then, a cross-sectional view can make some sense.


On Wed, Apr 22, 2009 at 12:05 PM, Bruce Edge <[email protected]> wrote:

> Wow, great stuff. I'm in the same boat. The more tutorials form different
> perspectives that I read, the less fuzzy things appear.
> Not to hijack your thread, but I'm coming from gSOAP/C++ and
> java/jax-ws/jaxb/spring are all new. I think that the days of writing
> single
> binary soap servers in C/C++ are over for all but the tinyest appliances
> and
> that this is the migration path that all us embedded mgmt folk need to
> take.
>
> -Bruce
>
> On Wed, Apr 22, 2009 at 8:37 AM, Daniel Kulp <[email protected]> wrote:
>
> > On Tue April 21 2009 10:44:22 am Ron Grimes wrote:
> > > I've decided that I would really like to gain a solid, in-depth
> > > understanding of this stack, rather than just remaining happy knowing
> my
> > > particular implementation of Spring/CXF. So, I guess my question is
> > > this. Can some of you experts tell me the best way to tackle this
> > > elephant?
> >
> > Wow.   Speak about a broad request for information.   That said, it's
> > definitely a good request.    :-)      Hmm....  where to start......
> >
> > From a very high level perspective, I could ask: are you more interested
> in
> > runtime things or tooling (wsdl2java/java2ws/maven plugins/etc...) type
> > things?   That type of question can drive starting points.
> >
> > Judging from your question, I'm going to assume runtime.   Then the
> > question
> > comes down to "what kind of person are you?"   Pretend the CXF core
> runtime
> > is
> > an onion.  (I'm sure SOMEONE is going to tweet that CXF is an onion now
> > that I
> > said that)   Are you the type of person that prefers to start on the
> > outside
> > examining and removing one layer at a time to achieve an understanding of
> > what
> > the onion is all about?   Or are you the type of person that would chop
> the
> > onion in half and examine the core and start seeing how the layers were
> > layered on top one after another?
> >
> > I'm firmly in the latter category.   Whenever I try the "outside in"
> > approach, I keep asking questions like "why is this layer here" and such
> > and I
> > keep dropping into the core layers to answer my questions.   Thus, for me
> > "outside in" always ends up degrading into "inside out" anyway.
> >
> > However, other people do best with the outside in approach.   They KNOW
> > JAX-WS
> > and JAXB and they KNOW SOAP and such and thus want to start off there
> where
> > there is some stuff from their comfort zone.
> >
> > Anyway, since I'm an inside out person, my suggestion would be to setup
> > eclipse and get a client or server running in eclipse.   Put a breakpoint
> > at
> > line 236 of PhaseInterceptorChain.   (it looks like:
> > currentInterceptor.handleMessage(message);)   and debug.   At that
> > breakpoint,
> > take a look at the message, debug into some of the interceptors, see how
> > the
> > message changes as it gets passed, etc...
> >
> > If someone was going to ask me what is the CORE class of the CXF runtime,
> > it's
> > the PhaseInterceptorChain.    That's the class that drives all message
> > processing.    It's a relatively simple thing (mostly just a while loop),
> > but
> > it really IS CXF.
> >
> > The rest of CXF falls mostly into 3 main categories:
> >
> > 1) Setting up the message/chain prior to starting the chain processing.
> >  The
> > ClientImpl and destinations fall in here.   Example: the http listener
> > needs
> > to setup a message by pulling stuff from the incoming request.
> >
> > 2) The actual interceptors.   For example, soap processing is done by a
> > collection of interceptors that live in various locations on the chain.
> >
> > 3) A LOT of "setup and configuration" code that examine the various
> > locations
> > of information to setup and provide information to the stuff in
> categories
> > 1
> > and 2.   Things like looking at annotations, processing the wsdl,
> figuring
> > out
> > it's the soap binding, etc....
> >
> > Does that provide some information to get started?
> >
> > Dan
> >
> >
> >
> > > In other words, what would be the right order to try and get
> > > my arms around all of this? What I'm looking for is something like,
> > > "Start off with JAX-WS, then JAXB, then.....", as welll as maybe the
> > > best resources to understand better how they couple together, etc.
> Also,
> > > I would like to understand more about the thinking/rationale about how
> > > this all came together, and why the choice of certain mechanisms such
> as
> > > interceptors and such.
> > >
> > > Hopefull, you get my gist.
> > >
> > > Thanks for any direction you can give.
> > >
> > >
> > > Ron Grimes
> >
> > --
> > Daniel Kulp
> > [email protected]
> > http://www.dankulp.com/blog
> >
>

Reply via email to