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

bur*_*rsk 7 perl soap wsdl web-services dancer

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

我的Web应用程序有以下情况.

  • 我有一个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

您使用催化剂吗?

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

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