从:
开始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。
答案 0 :(得分:1)
默认情况下,netty组件不是基于文本的,而是使用java对象序列化。那是因为另一个旧的tcp组件camel-mina有默认行为,我们希望netty类似。
因此,您需要通过设置选项textline=true
将端点配置为基于文本。您可以在http://camel.apache.org/netty