You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@cxf.apache.org by Jeff Costello <je...@gmail.com> on 2012/06/09 23:53:57 UTC

misconfigured interceptor chain using jms transport

I am unable to get CXF running properly when exposed soap over jms. I am
using SMX 4 with camel 2.8.4 and CXF 2.4.6. I have schema validation
enabled. I exposed two CXF endpoints. The first via the http servlet and
the second over jms. I used the JMS Config feature for my jms transport.
Over HTTP, everything works fine. My requests validate against the schema.
Bad messages get a SOAP fault response, good ones get a good response.

Over JMS, I get the soap fault responses for the bad messages, but I don't
get any responses for the good messages. I tracked the issue down to the
CXF interceptor chain. I see that when I send a good result via JMS, the
interceptor chain is set up as one way. Here are the details. Has anyone
encountered this before? If so, how was it solved? Could I configure the
bus explicitly to prevent this from happening?

GOOD (HTTP SOAP FAULT):
Chain org.apache.cxf.phase.PhaseInterceptorChain@94f025b was modified.
Current flow:
  setup [ServerPolicyOutFaultInterceptor]
  prepare-send [MessageSenderInterceptor, Soap11FaultOutInterceptor]
  pre-stream [LoggingOutInterceptor, StaxOutInterceptor]
  pre-protocol [WebFaultOutInterceptor]
  write [SoapOutInterceptor]
  marshal [Soap11FaultOutInterceptorInternal]
  write-ending [SoapOutEndingInterceptor]
  pre-stream-ending [StaxOutEndingInterceptor]
  prepare-send-ending [MessageSenderEndingInterceptor]

GOOD (JMS SOAP FAULT):
Chain org.apache.cxf.phase.PhaseInterceptorChain@5f6d51c0 was modified.
Current flow:
  setup [ServerPolicyOutFaultInterceptor]
  prepare-send [MessageSenderInterceptor, Soap11FaultOutInterceptor]
  pre-stream [LoggingOutInterceptor, StaxOutInterceptor]
  pre-protocol [WebFaultOutInterceptor]
  write [SoapOutInterceptor]
  marshal [Soap11FaultOutInterceptorInternal]
  write-ending [SoapOutEndingInterceptor]
  pre-stream-ending [StaxOutEndingInterceptor]
  prepare-send-ending [MessageSenderEndingInterceptor]

BAD (JMS VALID MESSAGE):
Chain org.apache.cxf.phase.PhaseInterceptorChain@11c03d7b was modified.
Current flow:
  receive [PolicyInInterceptor, LoggingInInterceptor,
AttachmentInInterceptor, SoapJMSInInterceptor]
  post-stream [StaxInInterceptor]
  read [WSDLGetInterceptor, ReadHeadersInterceptor,
SoapActionInInterceptor, StartBodyInterceptor]
  pre-protocol [MEXInInterceptor, MustUnderstandInterceptor]
  post-protocol [CheckFaultInterceptor, JAXBAttachmentSchemaValidationHack]
  unmarshal [URIMappingInterceptor, DocLiteralInInterceptor,
SoapHeaderInterceptor]
  pre-logical [OneWayProcessorInterceptor]
  post-logical [WrapperClassInInterceptor, CheckClosingTagsInterceptor]
  pre-invoke [SwAInInterceptor, HolderInInterceptor]
  invoke [ServiceInvokerInterceptor]
  post-invoke [OutgoingChainInterceptor]

GOOD (HTTP VALID MESSAGE):
Chain org.apache.cxf.phase.PhaseInterceptorChain@2208f8b6 was modified.
Current flow:
  setup [PolicyOutInterceptor]
  pre-logical [HolderOutInterceptor, SwAOutInterceptor,
WrapperClassOutInterceptor, SoapHeaderOutFilterInterceptor]
  post-logical [SoapPreProtocolOutInterceptor]
  prepare-send [MessageSenderInterceptor]
  pre-stream [LoggingOutInterceptor, AttachmentOutInterceptor,
StaxOutInterceptor]
  write [SoapOutInterceptor]
  marshal [BareOutInterceptor]
  write-ending [SoapOutEndingInterceptor]
  pre-stream-ending [StaxOutEndingInterceptor]
  prepare-send-ending [MessageSenderEndingInterceptor]

Thanks,

Jeff Costello

Re: misconfigured interceptor chain using jms transport

Posted by Daniel Kulp <dk...@apache.org>.
Is this in PAYLOAD or MESSAGE mode in Camel?   Any chance of creating a 
small "hello world" type testcase for this?  I'm really not sure if this is 
a Camel issue or a CXF issue at this point.   Camel-cxf tends to do some 
strange things to the chains, but I haven't see this type of thing yet.

Dan


On Saturday, June 09, 2012 05:53:57 PM Jeff Costello wrote:
> I am unable to get CXF running properly when exposed soap over jms. I am
> using SMX 4 with camel 2.8.4 and CXF 2.4.6. I have schema validation
> enabled. I exposed two CXF endpoints. The first via the http servlet and
> the second over jms. I used the JMS Config feature for my jms transport.
> Over HTTP, everything works fine. My requests validate against the schema.
> Bad messages get a SOAP fault response, good ones get a good response.
> 
> Over JMS, I get the soap fault responses for the bad messages, but I don't
> get any responses for the good messages. I tracked the issue down to the
> CXF interceptor chain. I see that when I send a good result via JMS, the
> interceptor chain is set up as one way. Here are the details. Has anyone
> encountered this before? If so, how was it solved? Could I configure the
> bus explicitly to prevent this from happening?
> 
> GOOD (HTTP SOAP FAULT):
> Chain org.apache.cxf.phase.PhaseInterceptorChain@94f025b was modified.
> Current flow:
>   setup [ServerPolicyOutFaultInterceptor]
>   prepare-send [MessageSenderInterceptor, Soap11FaultOutInterceptor]
>   pre-stream [LoggingOutInterceptor, StaxOutInterceptor]
>   pre-protocol [WebFaultOutInterceptor]
>   write [SoapOutInterceptor]
>   marshal [Soap11FaultOutInterceptorInternal]
>   write-ending [SoapOutEndingInterceptor]
>   pre-stream-ending [StaxOutEndingInterceptor]
>   prepare-send-ending [MessageSenderEndingInterceptor]
> 
> GOOD (JMS SOAP FAULT):
> Chain org.apache.cxf.phase.PhaseInterceptorChain@5f6d51c0 was modified.
> Current flow:
>   setup [ServerPolicyOutFaultInterceptor]
>   prepare-send [MessageSenderInterceptor, Soap11FaultOutInterceptor]
>   pre-stream [LoggingOutInterceptor, StaxOutInterceptor]
>   pre-protocol [WebFaultOutInterceptor]
>   write [SoapOutInterceptor]
>   marshal [Soap11FaultOutInterceptorInternal]
>   write-ending [SoapOutEndingInterceptor]
>   pre-stream-ending [StaxOutEndingInterceptor]
>   prepare-send-ending [MessageSenderEndingInterceptor]
> 
> BAD (JMS VALID MESSAGE):
> Chain org.apache.cxf.phase.PhaseInterceptorChain@11c03d7b was modified.
> Current flow:
>   receive [PolicyInInterceptor, LoggingInInterceptor,
> AttachmentInInterceptor, SoapJMSInInterceptor]
>   post-stream [StaxInInterceptor]
>   read [WSDLGetInterceptor, ReadHeadersInterceptor,
> SoapActionInInterceptor, StartBodyInterceptor]
>   pre-protocol [MEXInInterceptor, MustUnderstandInterceptor]
>   post-protocol [CheckFaultInterceptor,
> JAXBAttachmentSchemaValidationHack] unmarshal [URIMappingInterceptor,
> DocLiteralInInterceptor,
> SoapHeaderInterceptor]
>   pre-logical [OneWayProcessorInterceptor]
>   post-logical [WrapperClassInInterceptor, CheckClosingTagsInterceptor]
>   pre-invoke [SwAInInterceptor, HolderInInterceptor]
>   invoke [ServiceInvokerInterceptor]
>   post-invoke [OutgoingChainInterceptor]
> 
> GOOD (HTTP VALID MESSAGE):
> Chain org.apache.cxf.phase.PhaseInterceptorChain@2208f8b6 was modified.
> Current flow:
>   setup [PolicyOutInterceptor]
>   pre-logical [HolderOutInterceptor, SwAOutInterceptor,
> WrapperClassOutInterceptor, SoapHeaderOutFilterInterceptor]
>   post-logical [SoapPreProtocolOutInterceptor]
>   prepare-send [MessageSenderInterceptor]
>   pre-stream [LoggingOutInterceptor, AttachmentOutInterceptor,
> StaxOutInterceptor]
>   write [SoapOutInterceptor]
>   marshal [BareOutInterceptor]
>   write-ending [SoapOutEndingInterceptor]
>   pre-stream-ending [StaxOutEndingInterceptor]
>   prepare-send-ending [MessageSenderEndingInterceptor]
> 
> Thanks,
> 
> Jeff Costello