Невозможно загрузить класс, даже если он существует во время компиляции - PullRequest
0 голосов
/ 18 января 2012

В нашем проекте я получаю следующее исключение при развертывании кода.Маскированный класс - это файл служебного класса, который не смог загрузить среду выполнения.Почему класс не загружается, хотя класс существует во время компиляции?

javax.servlet.ServletException: java.lang.NoClassDefFoundError: Could not initialize class com.***.****.******
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:333)
    at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
    ****
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)

Ответы [ 2 ]

1 голос
/ 18 января 2012

Я согласен с BalusC.Тем не менее, обратите внимание, что в зависимости от ваших обстоятельств исключение может не появиться (в этом случае вы просто вынуждены внимательно присмотреться).Более новые JRE намного лучше (хотя вы работаете в weblogic, который может делать кучу всяких прикольных вещей), и у меня давно не было этой проблемы, но когда-то это был один из моих самых больших багов.

1 голос
/ 18 января 2012

Это NoClassDefFoundError может произойти, если во время инициализации класса какая-либо из переменных static или static {} выкинула RuntimeException (например, NullPointerException и т. Д.).

Этот RuntimeException должен быть виден ниже в трассировке стека. Интерпретируйте и исправьте код соответствующим образом.

...