如何使用cookie在持久的Perl Web应用程序中处理SOAP服务?

时间:2014-09-16 18:10:03

标签: web-services perl soap wsdl dancer

由于SOAP::WSDL的崩溃导致了我真正的Perl模块,我必须寻找其他东西来处理SOAP服务。生成的模块将无法从Perl v5.18开始工作。

我的网络应用程序存在以下情况。

  • 我有一个PSGI兼容的,Dancer2驱动的持久性Web应用程序。
  • Web应用程序处理多个并发客户。
  • Web应用程序位于客户和外部SOAP服务之间。
  • SOAP服务通过cookie使用客户会话,这些cookie必须在内部为客户集成到Web应用程序中。
  • Web应用程序包含SOAP服务的WSDL文件副本。

我正在寻找一个模块,该模块从WSDL文件中创建一个接口,并处理参数/模式验证以及与SOAP服务的通信。我想调用带参数的方法(SOAP调用)(SOAP调用参数)并接收清理后的数据或响应的对象结构。

问题是Web应用程序需要处理多个并发客户cookie会话。所以我需要一个模块,它可以覆盖特定请求的cookie jar,并在请求后提取cookie而不会干扰其他并发请求。

我发现XML::Compile我可以在Web应用程序启动时初始化为单例。但是通过这个解决方案,我遇到了干扰其他客户请求的问题。因此请求不会分开。为每个请求初始化XML :: Compile都不是解决方案,因为它会解析WSDL并为客户发送到Web应用程序的每个请求反复生成处理程序。

是否有任何解决方案/模块符合我的需求,或者我是否错过了使用XML :: Compile的东西并且可以使用它?

1 个答案:

答案 0 :(得分:1)

您使用的是Catalyst吗?

我很高兴使用Catalyst::Controller::SOAP及其随附的Catalyst::Model::SOAP来构建SOAP / WSDL服务器和使用者,甚至能够将Perl应用程序与Microsoft Document Literal-Wrapped集成在一起。

即使不使用Catalyst,您也可以从其代码中学习。它使用XML::Compile::WSDL11