【发布时间】:2014-09-23 11:34:05
【问题描述】:
我正在使用一个 Java EE 应用程序,该应用程序公开了 150 多个 Web 服务合同,每个合同都有多个操作。
我认为这是更新容器中的应用程序时发布时间过长和 OutOfMemory 错误的原因。
我想知道如何修改这个应用程序架构以支持这种多重网络服务。
我正在使用 Java EE 5 规范。
把它分成多个war文件是个好办法吗?
也许是 OSGi。是否可以在 WAS 7 上使用 OSGi ?这是一个好的解决方案吗?
添加
也许扩展JVM的内存可以暂时解决问题,但还有其他顾虑,内存无济于事。
这个应用程序被多个应用程序访问。更新一个 Web 服务会影响使用另一个 Web 服务的所有客户端。我想了解如何解耦这个 EAR。
【问题讨论】:
-
你的容器会运行在同一个JVM上,所以我认为你真正需要的是一台拥有更多内存和更大JVM堆的机器
-
您当前的最大堆大小是多少?您使用的是内置网络服务引擎还是第三方?
-
Web 服务是 JAX-WS 2.1。我没有关于服务器内存属性的信息,但我想知道一些关于应用程序架构本身的见解。加内存一时可能会解决问题,但随着应用的增加,问题又会再次出现。
-
"...在容器中更新应用程序时出现 OutOfMemory 错误..."。您是否使用热部署更新应用程序?如果是,可能需要重新启动服务器,并放置一个前端的负载平衡器以保持可用性。
标签: java web-services jakarta-ee osgi