Я работаю с приложением Java EE, которое предоставляет более 150 контрактов веб-сервисов с несколькими операциями.
Я думаю, что это причина длительного времени публикации и OutOfMemory erros при обновлении приложения в контейнере.
Я хотел бы знать, как изменить эту архитектуру приложения, чтобы поддерживать эти многократные веб-службы.
Я работаю с спецификацией Java EE 5.
Разделение его на несколько военных файлов - хороший подход?
Возможно OSGi. Можно ли использовать OSGi
на WAS 7
? Это хорошее решение?
ADDED
Возможно, расширение памяти JVM может решить проблему какое-то время, но есть и другие проблемы, которые память не поможет.
Доступ к этому приложению осуществляется несколькими приложениями. Обновление одного веб-сервиса влияет на всех клиентов, которые используют другой веб-сервис. Мне хотелось бы узнать, как отделить этот EAR.
Если вы не запускаете JVM с флагом для разгрузки классов, каждое обновление добавит то же самое количество классов сверху. Это вызовет проблему OOM или более конкретную проблему PermSpace. Если вы не запустите свой сервер с правильными настройками, много памяти (вы правильно используете JEE-приложение?) И правильный размер для PermSpace и т.д., Вы всегда будете сталкиваться с этим. Часть OSGi также не решит ее. И это всегда будет зависеть от самого JVM, Oracle JVM поддерживает разгрузку классов, а начиная с 8 он больше не содержит PermSpace. Хотя в этот момент вам придется смотреть стек :)