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 >
