Today I spent a good deal of time trying to figure out why I was getting a bunch of NoClassDefFoundErrors. The changes I made were not significant, but I did make one configuration change to JBoss. It seems the default is to compile the JSP pages with Java 1.4, so I changed it to 1.5, as a new JSP page used some Java 1.5 generics.
When I tried to bring the application back up, I got the following different errors each time I restarted JBoss.
javax.servlet.ServletException: java.lang.NoClassDefFoundError: org/eclipse/jdt/internal/compiler/problem/DefaultProblem
java.lang.NoClassDefFoundError: org/eclipse/jdt/internal/compiler/ast/Argument
NoClassDefFoundError: org/eclipse/jdt/internal/compiler/ast/SingleTypeReference
Finally, I got a PermGen space error.
A friend suggested increasing my PermGen memory in JBoss, which I did by adding the following line to the run.bat file in the JBoss bin directory:
set JAVA_OPTS=%JAVA_OPTS% -XX:PermSize=512m -XX:MaxPermSize=512m
This fixed the problem. So when having weird org/eclipse NoClassDefFoundErrors being thrown, try increasing your PermSize.
Parameterized Tests: An Underused Technique
4 years ago