将soap请求重定向到另一个soap服务,而不向客户端发送302

时间:2014-09-22 08:14:57

标签: java web-services soap apache-camel spring-ws

现有两种Web服务,即生产环境中运行的soap服务和休息服务。现在我应该编写一个新的代理服务(将在tomcat上单独部署),它将处理SOAP和REST(GET / PUT / POST / DELETE)服务的所有传入请求,并根据它将修改和路由的一些逻辑对REST服务的请求。但是对于SOAP Web服务,它应该盲目地将请求隧道传送到现有的SOAP服务。此整体实现中唯一的问题是调用此新代理服务的客户端应用程序无法知道它是在内部重定向请求。

我不确定如何最好地实施SAOP服务请求的隧道,到目前为止我所探讨的选项是 -

  • 使用Tuckey URLRewrite过滤器,这将无效,因为它将向客户端发送302
  • 编写我自己的servlet,它将为每个请求打开一个新连接,这将隐藏客户端的重定向。这将有效,但它似乎不是一个干净/可扩展的方法。假设这项服务将处于重负荷状态。

有没有更好的方法呢?我非常感谢任何有用的投入。

1 个答案:

答案 0 :(得分:0)

我认为它依赖于客户端如何处理响应消息。 如果您使用camel-cxf endpint代理SOAP请求,我认为您不必担心302响应,因为CXF客户端可以开箱即用。