174.7. 消费者示例
在这个示例中,我们定义了一个在 http://localhost:8080/myapp/myservice
公开 HTTP 服务的路由:
使用 localhost
当您在 URL 中指定 localhost
时,Camel 仅在本地 TCP/IP 网络接口上公开端点,因此无法从它运行的计算机外部访问它。
如果您需要在特定网络接口上公开 Jetty 端点,则此接口的数字 IP 地址应用作主机。如果您需要在所有网络接口上公开 Jetty 端点,应使用 0.0.0.0
地址。
要跨越整个 URI 前缀侦听,请参阅 如何让 Jetty 匹配通配符。
如果您实际上希望通过 HTTP 公开路由并已有一个 Servlet,您应该参考 Servlet 传输。
我们的业务逻辑在 MyBookService
类中实施,该类访问 HTTP 请求内容,然后返回响应。
注: 本例中显示 assert
调用,因为代码是单元测试的一部分。
以下示例显示了基于内容的路由,该路由将包含 URI 参数的所有请求路由到端点,模拟:
one
,所有其他路由到 mock:other
。
因此,如果客户端发送 HTTP 请求 http://serverUri?one=hello
,Jetty 组件会将 HTTP 请求参数复制到交换的 in.header
。然后,我们可以使用
简单
语言将包含此标头的交换路由到特定的端点,以及其他所有语言。如果我们使用了比 Simple 更强大的语言(如 OGNL),我们也可以测试参数值并根据标头值执行路由。