2017-07-07 3 views
0

wie ich ein Anfänger von Kamel bin. Ich möchte einen Hinweis bekommen, um mein Problem zu lösen. hier ist mein Codekamel netty4 ChannelHandlerFactory ByteToMessageDecoder Fehler

vollständige Quelle Link: https://github.com/kcy0142/camel_netty_test

@Configuration 
public class ChannelHandlerFactoryByteArrayDecoder implements ChannelHandlerFactory { 

    @Bean(name="vpaByteDecoder") 
    @Qualifier("vpaByteDecoder") 
    public ChannelHandler newChannelHandler() { 
     return (ChannelHandler) new VpaByteDecoder(); 
    } 
    public class VpaByteDecoder extends ByteToMessageDecoder{ 

    } 
} 

und mein Router ist

from("netty4:tcp://localhost:8004?textline=true&sync=true&decoders=#vpaByteDecoder&encoders=#stringEncoder"). 

und Fehler wie diese

aufgerufen wird
io.netty.channel.ChannelPipelineException: config.ChannelHandlerFactoryDecoder$VpaByteDecoder is not a @Sharable handler, so can't be added or removed multiple times. 

ByteToMessageDecoder sollte nicht teilbaren. so implementierte ich ChannelHandlerFactory

ich weiß nicht den Grund.kündigen Sie mir den Weg, um mein Problem zu verstehen.

Antwort

0

Es ist die Factory-Klasse, die nicht die Bean-Methode genannt werden sollte, so etwas wie dies stattdessen und entfernen Sie die @Bean

@Component(name="vpaByteDecoder") 
public class ChannelHandlerFactoryByteArrayDecoder implements ChannelHandlerFactory { 
+0

es funktioniert. Vielen Dank. und es ist mir eine Ehre, Kamel zu benutzen. – james