2015-12-15 1 views
0

Начиная с:Простая обработка входящего TCP

http://www.typesafe.com/activator/template/camel-http

Я сделал простой маршрут:

import org.apache.camel.scala.dsl.builder.RouteBuilder 
class SocketPost extends RouteBuilder { 
    """netty:tcp://localhost:12000""" ==> { 
    id("hello socket") 
    log("hello") 
    to("http4:localhost:9000/") 
    } 
} 

и добавил его:

context.setUseMDCLogging(true) 
context.addRoutes(new SocketPost()) 
context.start() 

я телнет к локальной машине : 12000 и введите некоторые данные и отключите их, но мои навыки Google не позволяют мне как прокомментировать данные. Я только получаю журнал, когда я подключаюсь:

09:48:43 DEBUG org.apache.camel.component.netty.DefaultServerPipelineFactory Using OrderedMemoryAwareThreadPoolExecutor with core pool size: 16 

в противном случае все будет тихо. Я хотел бы, чтобы данные, введенные через telnet, были POSTED на localhost: 9000, как в учебнике.

+1

set textline = true в netty uri, чтобы быть основанным на тексте. Подробнее о netty docs: http://camel.apache.org/netty –

+0

Это сделало это, спасибо! если вы разместите «" «netty: tcp: // localhost: 12000? textline = true» «« Я могу выбрать это как ответ – FelixHJ

ответ

1

Компонент netty не по умолчанию основан на тексте, но с использованием сериализации объектов Java. Это было потому, что у других более старые компоненты tcp camel-mina было такое поведение по умолчанию, и мы хотели, чтобы netty была одинаковой.

Таким образом, вам необходимо настроить конечную точку как текст, основываясь на настройке параметра textline=true. Вы можете найти более подробную информацию об этой опции по адресу: http://camel.apache.org/netty