cxf-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From liucong <liucon...@gmail.com>
Subject Re: How to implement the SOAP Fault for JMS Transport?
Date Wed, 17 Jun 2009 02:12:54 GMT
Hi,
    I have added a simple interceptor in the SOAP binding. If the 
transport uri is http://www.w3.org/2008/07/soap/bindings/JMS/, the jms 
interceptor will be added. But I have some question for that:
    1. I feel a little weird to add a transport-related interceptor here.
    2. Program Problem. I have declared some constants in the 
jms-transport module. I need use some of these constants in the jms 
interceptor. I think it is a little weird to add project dependency to 
jms-transport for soap-binding module. Do I need to declare these 
constants again in the soap-binding module?
    3. How to deal with soapjms:isFault property. If the soapjms:isFault 
is true, it indicates that the response is a SOAP fault. How to deal 
with this property.

best regards,
liu

Daniel Kulp Writes:
> 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
>>>>>>             
>
>   


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