简单处理传入的tcp

时间:2015-12-15 09:00:34

标签: scala apache-camel netty telnet

从:

开始

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()

我可以telnet到localhost:12000并键入一些数据并断开连接,但我的谷歌技能使我无法处理数据。我连接时只收到日志:

09:48:43 DEBUG org.apache.camel.component.netty.DefaultServerPipelineFactory   Using OrderedMemoryAwareThreadPoolExecutor with core pool size: 16
否则一切都是沉默的。我希望通过telnet输入的数据在本教程中发布到localhost:9000。

1 个答案:

答案 0 :(得分:1)

默认情况下,netty组件不是基于文本的,而是使用java对象序列化。那是因为另一个旧的tcp组件camel-mina有默认行为,我们希望netty类似。

因此,您需要通过设置选项textline=true将端点配置为基于文本。您可以在http://camel.apache.org/netty

找到有关此选项的更多详细信息