我正在使用 Java EE 应用程序,该应用程序通过多个操作公开150多个webservices合同。
我认为在更新容器中的应用程序时,这是导致发布时间过长和OutOfMemory错误的原因。
我想知道如何修改此应用程序架构以支持此多个Web服务。
我正在使用 Java EE 5 规范。
在多个war文件中分隔它是一种好方法吗?
也许是OSGi。是否可以在OSGi
上使用WAS 7
?这是一个很好的解决方案吗?
ADDED
也许扩展 JVM 内存可以解决问题一段时间,但还有其他问题,内存不会有帮助。
此应用程序可由多个应用程序访问。更新一个Web服务会影响使用其他Web服务的所有客户端。我想了解如何解耦 EAR 。
答案 0 :(得分:0)
除非您使用卸载类的标志启动JVM,否则每次更新都会在顶部添加相同数量的类。这将导致您出现OOM或更具体的PermSpace问题。除非你使用正确的设置启动你的服务器,很多内存(你正在运行JEE应用程序吗?)和正确调整PermSpace等等。你将永远遇到这个问题。 OSGi部分也不会解决它。 和这将始终依赖于JVM本身,Oracle JVM确实支持卸载类,而从8开始它不再包含PermSpace。虽然在那时你将不得不观看筹码:)