我的团队正在开发基于现有的基于SOAP的Web服务的REST服务包装。我们并不完全了解SOAP服务内部部件,只能访问WSDL文件。我们的REST服务包装将只是一对一的映射。通过现有的SOAP Web服务构建REST包装
即使请允许我将它称为REST服务,但我确实知道它并不遵循REST哲学。该REST服务将部署在Tomcat上,许多客户端将同时访问它。
当前的实现是,我们将为每个客户创建一个代理对象(使用SOAP WSDL代理类)。该代理对象将用于调用SOAP API。 SOAP需要通过代理对象绑定验证细节,所以我们在运行时将每个客户端的这些对象保存在内存中,同时进行第一次REST调用以建立会话。
保存的对象在运行时使用SessionID标识符获取。现在问题是这些代理对象占用大内存块,并且只有少数REST客户端被支持。 (使用默认的64 MB只能运行19个REST客户端)。这是我们现在想要改变方法的麻烦,并且需要您的建议。
请让我知道是否有更好的解决方案存在。我们不希望数据库存储对象。
感谢您的建议。所以你的意思是这个问题可以通过编写一个处理单个代理对象的翻译层来解决,或者不需要任何代理对象。 – sakura 2012-07-05 22:37:40