NetBeans sort la stacktrace suivante :

java.lang.OutOfMemoryError: PermGen space
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:961)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1423)
at org.apache.jasper.compiler.JspDocumentParser.parseCustomAction(JspDocumentParser.java:1190)
at org.apache.jasper.compiler.JspDocumentParser.startElement(JspDocumentParser.java:429)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:533)
...

Le Permanent Generation Space est une zone mémoire séparée qui est utilisée par l'API de réflexion (entre autre). Comme la valeur par défaut n'est pas très élevée, l'erreur ci-dessus apparaît généralement assez vite.

Pour augmenter cette zone mémoire, il faut aller dans la configuration du domaine GlassFish, qui se trouve dans le fichier %GlassFish%/domains/domain1/config/domain.xml et trouver l'endroit où sont définies les jvm-options. Ensuite, il suffit de modifier la variable MaxPermSize pour mettre une valeur suffisante :

<java-config classpath-suffix="" debug-enabled="false" debug-options="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=9009" env-classpath-ignored="true" java-home="${com.sun.aas.javaRoot}" javac-options="-g" rmic-options="-iiop -poa -alwaysgenerate -keepgenerated -g" system-classpath="">
  <jvm-options>-XX:MaxPermSize=600m</jvm-options>
  <jvm-options>-client</jvm-options>
  <jvm-options>-Djava.endorsed.dirs=${com.sun.aas.installRoot}/lib/endorsed</jvm-options>
  <jvm-options>-Djava.security.policy=${com.sun.aas.instanceRoot}/config/server.policy</jvm-options>
  <jvm-options>-Djava.security.auth.login.config=${com.sun.aas.instanceRoot}/config/login.conf</jvm-options>
  <jvm-options>-Dsun.rmi.dgc.server.gcInterval=3600000</jvm-options>
  <jvm-options>-Dsun.rmi.dgc.client.gcInterval=3600000</jvm-options>
  <jvm-options>-Xmx1024m</jvm-options>
  <jvm-options>-Djavax.net.ssl.keyStore=${com.sun.aas.instanceRoot}/config/keystore.jks</jvm-options>
  <jvm-options>-Djavax.net.ssl.trustStore=${com.sun.aas.instanceRoot}/config/cacerts.jks</jvm-options>
  <jvm-options>-Djava.ext.dirs=${com.sun.aas.javaRoot}/lib/ext${path.separator}${com.sun.aas.javaRoot}/jre/lib/ext${path.separator}${com.sun.aas.instanceRoot}/lib/ext${path.separator}${com.sun.aas.derbyRoot}/lib</jvm-options>
  <jvm-options>-Djdbc.drivers=org.apache.derby.jdbc.ClientDriver</jvm-options>
  <jvm-options>-Djavax.management.builder.initial=com.sun.enterprise.admin.server.core.jmx.AppServerMBeanServerBuilder</jvm-options>
  <jvm-options>-Dcom.sun.enterprise.config.config_environment_factory_class=com.sun.enterprise.config.serverbeans.AppserverConfigEnvironmentFactory</jvm-options>
  <jvm-options>-Dcom.sun.enterprise.taglibs=appserv-jstl.jar,jsf-impl.jar</jvm-options>
  <jvm-options>-Dcom.sun.enterprise.taglisteners=jsf-impl.jar</jvm-options>
  <jvm-options>-XX:NewRatio=2</jvm-options>
</java-config>

Et ensuite le problème d'allocation mémoire devraient se faire (beaucoup) plus rare :)