2011-12-27 2 views
1

Я выполняю тесты нагрузки в своем веб-приложении java, работая в tomcat 7 с NiO-коннектором, работая под управлением 1000 пользователей, работающих одновременно, и получаю неожиданный результат - приложение становится полностью непригодным state, он дает ошибку пользователя со статусом 500 и NoClassDefFoundError для разных классов приложения, например MVC-контроллеров и других.NoClassDefFoundError в веб-приложении при интенсивной загрузке

Похоже, что tomcat «разворачивает» его каким-то образом по какой-то причине.

У вас есть мысли, как исправить это и что может быть источником проблемы?

ответ

1

Вы можете получить эту ошибку: класс не загружен ранее. Истинная ошибка может быть более информативной.

0

Может быть, он не в состоянии взять нагрузку ... Вы попытались уменьшить одновременных пользователей? попробуйте другой разъем ajp vs http? с nio/bio? делать тесты, связанные с операциями io?

3

(Это разработка на ответ Питера Lawrey в)

Одна из распространенных причин NoClassDefFoundError исключений пытается загрузить класс, который ранее не удалось класса нагрузки, или что зависит от класса, который ранее неудачная загрузка класса.

Если это то, что происходит, следы стека для более поздних исключений NoClassDefFoundError имеют тенденцию быть неинформативными. Настоящую причину проблемы обычно можно найти в более раннем событии журнала.


Я сомневаюсь, что Tomcat автоматически разворачивает вещи. Если бы это было так, я бы ожидал различных симптомов. (Даже если Tomcat что-то разворачивает, JVM будет выгружать только класс, если он больше не доступен. И любая попытка загрузить какой-либо другой класс, который зависит от разгруженного класса, приведет к загрузке новой копии из пути к классам.)

Что касается источника проблемы, есть вероятность, что у вас возникла проблема в статической инициализации вашего приложения. Вы настроили webapp для ленивой загрузки некоторых сервлетов?

Смежные вопросы