Web services 升级到play 2.3.8后从webservices发送请求时超时

Web services 升级到play 2.3.8后从webservices发送请求时超时,web-services,playframework,cxf,playframework-2.3,Web Services,Playframework,Cxf,Playframework 2.3,故事是这样的,我有一个play框架应用程序,它使用org.apache.cxf插件提供SOAP服务。在我的路由文件中,我有以下内容: GET /soap/*path org.apache.cxf.transport.play.CxfController.handle(path) POST /soap/*path org.apache.cxf.transport.play.CxfController.handle(pat

故事是这样的,我有一个play框架应用程序,它使用org.apache.cxf插件提供SOAP服务。在我的路由文件中,我有以下内容:

GET     /soap/*path                 org.apache.cxf.transport.play.CxfController.handle(path)
POST    /soap/*path                 org.apache.cxf.transport.play.CxfController.handle(path)
这将路由到我自己的一个函数,该函数将路径转换为另一个请求,该请求将命中我常用的控制器。我们通过构建
WSRequestHolder
对象来实现这一点。我们设置标题、查询参数等

这在Play2.2中曾经运行得很好,但是升级到2.3.8后,似乎出现了一个问题。我追溯到这一行:

Promise<WSResponse> responsePromise =  request.get();    
WSResponse response = responsePromise.get(2000);
Promise-responsePromise=request.get();
WSResponse=responsePromise.get(2000);
当我们发出请求时(调用response.Promise.get时),无论设置了什么超时,调用都会超时。我用一个基本的登录请求进行测试,它通常在不到200毫秒的时间内做出响应。我使用postman复制了请求参数,请求本身似乎运行良好,但当它从我的Web服务中启动时,它会超时

我可能在升级到2.2的过程中遗漏了一些东西,但我甚至不确定要调试什么。它显然不会影响控制器,在调试级别打开播放日志甚至看不到请求

任何帮助都将不胜感激

更新:


我已经在dev和prod模式下对其进行了测试。两者似乎在同一个地方都失败了。

我明白了。问题是,在重定向请求的过程中,我们两次重新添加内容长度头,一次作为长度,一次作为零(试图强制重新生成长度)。结果表明,这在游戏2.2中起作用,但导致它在游戏2.3中挂起。确保只添加一次内容长度头,以防止请求挂起。Dev/Prod模式已测试并正常工作。

是否处于Dev模式?Play在开发模式下连续处理请求,所以如果您对自己的应用程序进行WS调用并阻塞,我很确定它将注定超时。有趣的是,它在开发模式下。。。此外,这在Play2.2中也起作用,因此如果在迁移指南中提到这一点,那就太好了。我想知道是否有一种方法可以绕过这个限制而不切换到prod模式(这也会禁用自动重新加载),同时,切换到application.mode=prod仍然会显示问题。除非我仍然不知道如何将application设置为prod。。。我原以为将application.mode=prod放入application.conf文件就可以了,但日志仍然说play是在dev模式下启动的。
activator start