2009-12-11 3 views
0

Nous utilisons DisplayTag depuis un certain temps sans aucun problème, mais récemment, nous avions un disque dur bancal et nous avons donc dû restaurer certaines de ces fonctionnalités. Malheureusement, displaytag cassé et arrête tout le reste lorsqu'il est appelé:L'appel de DisplayTag renvoie NullPointerException

<display:table name="pageScope.userKeyList.licenseKeyList" id="userKey" pagesize="10" defaultsort="7" defaultorder="descending" sort="list" class="bodytext" width="100%" border="1"> 

Retournera avec l'erreur suivante:

java.lang.NullPointerException 
java.lang.Class.forName0(Native Method) 
java.lang.Class.forName(Class.java:164) 
org.displaytag.properties.TableProperties.getClassProperty(TableProperties.java:759) 
org.displaytag.properties.TableProperties.getClassPropertyInstance(TableProperties.java:776) 
org.displaytag.properties.TableProperties.getRequestHelperFactoryInstance(TableProperties.java:714) 
org.displaytag.tags.TableTag.initParameters(TableTag.java:715) 
org.displaytag.tags.TableTag.doStartTag(TableTag.java:600) 
org.apache.jsp.misc.key_002dtable_jsp._jspService(key_002dtable_jsp.java:113) 
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94) 
javax.servlet.http.HttpServlet.service(HttpServlet.java:802) 
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324) 
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292) 
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236) 
javax.servlet.http.HttpServlet.service(HttpServlet.java:802) 
sun.reflect.GeneratedMethodAccessor36.invoke(Unknown Source) 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
java.lang.reflect.Method.invoke(Method.java:585) 
org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:243) 
java.security.AccessController.doPrivileged(Native Method) 
javax.security.auth.Subject.doAsPrivileged(Subject.java:517) 
org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:272) 
org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:161) 

Je ne suis pas assez familier avec Apache Tomcat et Java, mais je suppose qu'il doit faire avec la politique de sécurité d'une catalina. J'espère que quelqu'un pourra confirmer cela ou m'aider dans la bonne direction. Nous sommes actuellement sur Tomcat 5.

+0

vérifiez d'abord les incompatibilités du chemin de classe. Nettoyez votre répertoire web-app et déployez-le à nouveau – Bozho

Répondre

0

Mon soupçon est que ce n'est pas un problème DisplayTag, c'est un problème des données sous-jacentes que vous essayez d'afficher avec DisplayTag. Avez-vous vérifié pour vous assurer que l'objet référencé par pageScope a vraiment une propriété non nulle userKeyList, et que la propriété userKeyList a vraiment une propriété non nulle licenseKeyList, par exemple?

(en train de lire ces noms, je me méfie que peut-être votre restauration ne rétablit pas une clé de licence que vous attendez ...)

0

A en juger par la trace de la pile, il ressemble à Class.forName () est appelé avec un paramètre de nom null. Vérifiez le code source de TableTag et TableProperties (à/près des numéros de ligne indiqués par la pile) pour savoir ce qu'il se passe. Ma conjecture est qu'une propriété requise est manquante de quelque chose: soit un fichier de configuration ou l'utilisation de la balise par votre JSP.