I am using Camel 2.15.2 & blueprint.
When using to uri=„log:…“ (Log component) it shows the body-type as
unpooledunsafedirectbytebuf. This statement works ok. And yes, it should
contain the ack response.
When using <log message=„*** ${body} ***“/> (or anything else that needs a
string, like convertbodytostring, etc) I get exceptions.
Even when the first statement after netty4 is to-file it does not work. So
there should be no one consuming it before.
The codecs are default.
<bean id="hl7nettydecoder"
class="org.apache.camel.component.hl7.HL7MLLPNettyDecoderFactory">
</bean>
<bean id="hl7nettyencoder"
class="org.apache.camel.component.hl7.HL7MLLPNettyEncoderFactory">
</bean>
I will continue to strip my complex project down.
Cheers, Thomas.
Am 22.01.2016 um 16:04 schrieb Claus Ibsen
<[email protected]<mailto:[email protected]>>:
On Fri, Jan 22, 2016 at 3:58 PM, Walzer, Thomas
<[email protected]<mailto:[email protected]>> wrote:
Problem is: I have a simple example that works fine. My more elaborate version
breaks. But basically it is:
queue->transacted->convertbodytostring->setSomeHeaders->log->netty4->log
The netty4 listening to my message gets the message and returns an ack. When I
try to get it as a string—>it breaks.
I do have a DefaultErrorhandler configured. But it should not kick in if
everything works ok.
Just to be clear. Its that last part
netty4->log
Where you attempt to log the netty4 response (eg the ack response) ?
Do you use any special codec or encoders with netty4 or something?
And what version of Camel do you use?
When I change the netty4 endpoint to mina2 -> it works. So I assume the problem
lies with the netty4 component. Maybe the codecs? Why do I not use mina2?
Because ultimately I want TLS which is broken with mina2 in my version of Camel.
It seems like some problem with redelivery as Claus suggested, however I am
still puzzled…
Cheers, Thomas.
Am 22.01.2016 um 08:20 schrieb Claus Ibsen
<[email protected]<mailto:[email protected]>>:
On Tue, Jan 19, 2016 at 4:54 PM, Walzer, Thomas
<[email protected]<mailto:[email protected]>> wrote:
Hi,
camel-2.15.2
I can successfully send to a HL7-Server, however I have troubles accessing the
resulting ACK.
Unfortunately it is of type UnpooledUnsafeDirectByteBuf and type conversion to
string fails:
....On delivery attempt: 2 caught: org.apache.camel.TypeConversionException:
Error during type conversion from type: java.lang.String to the required type:
java.lang.String with value UnpooledUnsafeDirectByteBuf(freed) due
io.netty.util.IllegalReferenceCountException: refCnt: 0
Sounds like you are doing redelivery and the byte buf is not reset on
redelivery or something so the data stream becomes empty and not
convertable to a string type. A bit like when you are not using stream
caching
http://camel.apache.org/why-is-my-message-body-empty.html
Any ideas how to work with the ACK (besides logging which works)?
Cheers, Thomas.
--
Claus Ibsen
-----------------
http://davsclaus.com @davsclaus
Camel in Action 2: https://www.manning.com/ibsen2
--
Claus Ibsen
-----------------
http://davsclaus.com<http://davsclaus.com/> @davsclaus
Camel in Action 2: https://www.manning.com/ibsen2