当用户尝试通过java web start下载应用程序时,我们的应用程序会不时出现以下异常:
java.lang.NoClassDefFoundError: jnlp.sample.servlet.ResourceCatalog$PathEntries
at jnlp.sample.servlet.ResourceCatalog.lookupResource(ResourceCatalog.java:109)
at jnlp.sample.servlet.JnlpDownloadServlet.handleVersionRequest(JnlpDownloadServlet.java:233)
...
Caused by: java.lang.ClassNotFoundException: jnlp.sample.servlet.ResourceCatalog$PathEntries
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1340)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1189)
... 44 more
或
java.lang.NoClassDefFoundError: jnlp.sample.util.VersionID
at jnlp.sample.util.VersionString.<init>(VersionString.java:58)
或
java.lang.NoClassDefFoundError: jnlp.sample.servlet.XMLNode
at jnlp.sample.servlet.XMLParsing.convert(XMLParsing.java:67)
重新启动Tomcat可以解决这些问题 有没有人有任何想法 - 这些例外的根本原因是什么?
更新
在我看来,此异常仅存在于仅在Java 1.5上运行Tomcat的客户端上
据我所知,在使用Java 1.4的客户端上没有这样的例外。
答案 0 :(得分:0)
它可能来自Tomcat中的自动应用程序重新加载或JSP重新编译。
由于Context option reloadable="true"
答案 1 :(得分:0)
这是Tomcat 5.0.28中的错误
https://issues.apache.org/bugzilla/show_bug.cgi?id=31903
https://issues.apache.org/bugzilla/show_bug.cgi?id=33743
已在5.5.10中修复。