cxf-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Daniel Kulp <dk...@apache.org>
Subject Re: How to implement the SOAP Fault for JMS Transport?
Date Wed, 10 Jun 2009 13:31:43 GMT
On Wed June 10 2009 4:38:37 am liucong wrote:
> So, the JMS transport just copy JMS message properties to somewhere(For
> example, Message.PROTOCOL_HEADERS map). Then the SOAP binding add some
> extra interceptors (How to add these interceptors?) to deal with these
> properties (check the properties, throw some SOAP Faults, and so on).
>
> Does it work? Is it Ok?

Yep.  That seems right.

To add your interceptors, it would be in the SoapBindingFactory class.   The 
createBinding(BindingInfo) method is where the interceptors for the SOAP stuff 
is setup.    That would be the starting place to look.

Dan


>
> Daniel Kulp Writes:
> > Ideally, to me, this type of fault mapping needs to be in the SOAP
> > binding, not the JMS transport.    The JMS transport needs to be somewhat
> > independent of soap so that it's usable for things like XML over JMS and
> > possibly even some resty things.
> >
> > Basically, the SOAP binding should examine it's transportId and if it's
> > the SOAP/JMS spec defined ID, it should add some extra interceptors to
> > handle the mapping of the "soap specific" things into the non-soap
> > specific things in the transport.
> >
> > For example:  all the funky JMS headers that the SOAP/JMS spec requires
> > should be done from an interceptor provided by the SOAP binding (put them
> > in the Message.PROTOCOL_HEADERS map) that the JMS transport would just
> > copy across.
> >
> > That said, I really haven't read the SOAP/JMS spec in very much detail so
> > I'm not sure if it's completely possible.   :-)
> >
> > Dan
> >
> > On Mon June 8 2009 10:54:18 pm liucong wrote:
> >> Hi,
> >>
> >> Willem Jiang Writes:
> >>> Hi,
> >>>
> >>> I think you mean how to throw the fault from the JMS transport.
> >>> Basically , if you throw the fault from a CXF interceptor, CXF's
> >>> interceptors chain will take care of it and build the fault message and
> >>> throw it out.
> >>>
> >>> If you want to check the Content type , you could write an interceptor
> >>> and load it with your soap jms transport.
> >>
> >> How to load an interceptor with my soap jms transport? Is there any
> >> material for help?
> >>
> >> Thank you.
> >>
> >>> But I think  you could take
> >>> the soap binding (SoapBindingFactory) as an example, and put this kind
> >>> of checking as a work of soap jms binding.
> >>>
> >>> Just my 2 cents,
> >>>
> >>> Willem
> >>>
> >>> liucong wrote:
> >>>> Hi all,
> >>>>
> >>>> When I implement the SOAP Over JMS Specification, I don’t know how
to
> >>>> implement SOAP fault for it.
> >>>>
> >>>> I use the org.apache.cxf.interceptor.Fault to record the Fault
> >>>> information. For example, I create a Fault instance for SOAP fault
> >>>> subcode contentTypeMismatch
> >>>> (http://www.w3.org/TR/2008/WD-soapjms-20080723/#binding-faults). If
I
> >>>> check the fault the cxf-rt-transports-jms module, I don’t know how
to
> >>>> deal with the fault which is checked out.
> >>>>
> >>>> If I added an Interceptor for JMS transport, I can use the interceptor
> >>>> to deal with the fault. Is It right?
> >>>>
> >>>> If it is Ok, how is the interceptor added to the interceptors
> >>>> according to whether the jms transport is used or not?
> >>>>
> >>>> Are there any materials for interceptors, phases, and phase order?
> >>>>
> >>>> Thank you very much!
> >>>>
> >>>> Best regards,
> >>>>
> >>>> Liu

-- 
Daniel Kulp
dkulp@apache.org
http://www.dankulp.com/blog

Mime
View raw message