Any idea where in stream
I am doing what the StreamIntercepter example had
Phase.PRE_STREAM
addBefore(SoapPreProtocolOutIntercepter )
But nothing in the writer buffer just empty string so i must be too early?
thanks
Sent from iCloud
On Jan 4, 2013, at 5:10 PM, Larry Presswood <[email protected]> wrote:
> i am using text
>
> I thought i would get writer on outbound and reader in inbound
Yea. You're correct. My mistake.
> but i want to mutate message both before send and after read
>
> at least in the phase i was using on out didnt seem like soap message was there?
It should behave the same as with the Streams used for HTTP. For outbound, you can probably cast to a StringWriter and call the getBuffer() on it to manipulate the string buffer directly assuming you are very late in the chain. If not, you can also wrap the writer with a new FilterWriter that overrides close() to do whatever you want and then call message.setContent(Writer.class, filteredWriter);
Dan
>
> Sent from my iPhone
>
> On Jan 4, 2013, at 17:05, Daniel Kulp <[email protected]> wrote:
>
>>
>> On Jan 4, 2013, at 3:48 PM, Larry Presswood <[email protected]> wrote:
>>
>>> I tried using the stream interceptor when using CXF configured with JMS Transport but it seems that
>>>
>>> boolean isOutbound = false;
>>> isOutbound = message == message.getExchange().getOutMessage()
>>> || message == message.getExchange().getOutFaultMessage();
>>>
>>> if (isOutbound) {
>>> OutputStream os = message.getContent(OutputStream.class);
>>>
>>> os is null when using jms but not when using straight http
>>>
>>> both are soap
>>>
>>> is this a bug or doe i need to intercept in a different stream
>>>
>>> i can see in the code where the message is being put into a JMSMessage but don't seem to find a way to intercept handily like with HTTP
>>>
>>> Any ideas or examples?
>>
>> Are you using a text JMS message or binary JMS message? If using a Text message, we keep it as a string and provide a Reader instead to avoid a lot of String -> byte[] -> String type conversions. Try:
>>
>> Reader r = message.getContent(Reader.class);
>>
>> or switch the JMS setup to use binary messages.
>>
>>
>> --
>> Daniel Kulp
>> [email protected] - http://dankulp.com/blog
>> Talend Community Coder - http://coders.talend.com
>>
--
Daniel Kulp
[email protected] - http://dankulp.com/blog
Talend Community Coder - http://coders.talend.com
