所有
我正在从EJB容器(IBM Websphere v6.1)进行REST客户端调用,但无法找到从WAS获取HTTP连接工厂的任何方法。
在WAS 6.1中是否可以这样做?
期望能够使用JNDI访问它,因此可以集中管理连接池配置,套接字超时,连接超时,每个URL的连接等。
如果不是,则使用客户端API,例如HttpClient 4.3。但它有自己的鱼锅:
他们推荐'BasicHttpClientConnectionManager':“这个连接管理器实现应该在EJB容器中使用”。然而,这意味着每个线程有一个连接,在具有许多线程的应用程序中将耗尽O / S的资源。
另一个替代方案'PoolingHttpClientConnectionManager'似乎更适合所需的大部分控件,但在Basic管理器的注释中明确指出不应该在管理的EJB容器中使用Pooling管理器上下文。扫描代码看起来像Pooling管理器使用并发库中的Future但似乎不直接使用Threads。
关于最佳前进方向的任何建议都将受到赞赏 - 一些选项似乎是:
对此相当ikky问题的任何建议都是理想的。
请不要建议升级WAS - 尽管未来版本即WAS商业版似乎有JCA HTTP适配器,而8.5有内置REST客户端。
请不要发布与MQ / JMS,JDBC连接池或为HTTP以外的EIS设置资源适配器相关的响应。