JSPWiki Classloading Issue#

After moving the class WikiPage to the package org.apache.jspwiki.api we started getting NoClassDefFoundErrors for this class if it is referenced from JSP's.
References from other classes gives no problem.
See stacktrace at the bottom

The strange thing is that the JSP can be compiled, but if it is invoked it gets the NCDFE.

Steps done to diagnose#

I have tried the following to diagnose the problem :

action result
used the binary download from jspwiki.org (instead of build in Eclipse No Success
move WikiPage back to the old package com.ecyrd.jspwiki Success
installed in Glassfish (instead of Tomcat) No Success
installed in Geronimo (intead of Tomcat) No Success
installed in WebSphere 6.1 (intead of Tomcat) No Success (NPE in Stripes, not further diagnosed)
run in webtests/JettyNo Success, cant find logfile but the Firefox screen look similar
put org.apache.jspwiki.api classes in separate jar file No Success
ran Tomcat with -verbose:classNo Success, no clue, the WikiPage is loaded from JSPWiki.jar, no strange things noticed
rename package org.apache.jspwiki.api to org2.apache.jspwiki.apiSuccess

INFO: Server startup in 33767 ms
Dec 30, 2008 7:47:47 PM org.apache.catalina.core.ApplicationContext log
INFO: No jspwiki.propertyfile defined for this context, using default from /WEB-INF/jspwiki.properties
Dec 30, 2008 7:47:47 PM org.apache.catalina.core.ApplicationContext log
INFO: Loading cascading properties...
Dec 30, 2008 7:47:47 PM org.apache.catalina.core.ApplicationContext log
INFO:  No cascading properties defined for this context
Dec 30, 2008 7:47:48 PM org.apache.catalina.core.ApplicationDispatcher invoke
SEVERE: Servlet.service() for servlet jsp threw exception
java.lang.ClassNotFoundException: org.apache.jspwiki.api.WikiPage
	at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
	at org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:134)
	at org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:66)
	at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:336)
	at org.apache.jsp.templates.default_.PageTab_jsp._jspService(PageTab_jsp.java:116)
	at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:337)
	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:630)
	at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:535)
	at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:472)
	at org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:968)
	at org.apache.jasper.runtime.PageContextImpl.include(PageContextImpl.java:609)
	at com.ecyrd.jspwiki.tags.IncludeTag.doEndTag(IncludeTag.java:84)
	at org.apache.jsp.templates.default_.PageContent_jsp._jspx_meth_wiki_005fInclude_005f0(PageContent_jsp.java:387)
	at org.apache.jsp.templates.default_.PageContent_jsp._jspService(PageContent_jsp.java:141)
	at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:337)
	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:630)
	at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:535)
	at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:472)
	at org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:968)
	at org.apache.jsp.Wiki_jsp._jspx_meth_stripes_005flayout_002dcomponent_005f0(Wiki_jsp.java:163)
	at org.apache.jsp.Wiki_jsp._jspx_meth_stripes_005flayout_002drender_005f0(Wiki_jsp.java:122)
	at org.apache.jsp.Wiki_jsp._jspService(Wiki_jsp.java:84)
	at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:337)
	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at net.sourceforge.stripes.controller.StripesFilter.doFilter(StripesFilter.java:246)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at com.ecyrd.jspwiki.ui.WikiServletFilter.doFilter(WikiServletFilter.java:183)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:568)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
	at java.lang.Thread.run(Thread.java:636)
2008-12-30 19:47:48,982 [http-8080-1] WARN com.ecyrd.jspwiki.tags.WikiTagBase  - Including failed, got a servlet exception from sub-page. Rethrowing the exception to the JSP engine.
org.apache.jasper.JasperException: javax.servlet.ServletException: java.lang.NoClassDefFoundError: org/apache/jspwiki/api/WikiPage
	at org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:522)
	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:398)
	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:337)
	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:630)
	at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:535)
	at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:472)
	at org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:968)
	at org.apache.jasper.runtime.PageContextImpl.include(PageContextImpl.java:609)
	at com.ecyrd.jspwiki.tags.IncludeTag.doEndTag(IncludeTag.java:84)
	at org.apache.jsp.templates.default_.PageContent_jsp._jspx_meth_wiki_005fInclude_005f0(PageContent_jsp.java:387)
	at org.apache.jsp.templates.default_.PageContent_jsp._jspService(PageContent_jsp.java:141)
	at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:337)
	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:630)
	at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:535)
	at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:472)
	at org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:968)
	at org.apache.jsp.Wiki_jsp._jspx_meth_stripes_005flayout_002dcomponent_005f0(Wiki_jsp.java:163)
	at org.apache.jsp.Wiki_jsp._jspx_meth_stripes_005flayout_002drender_005f0(Wiki_jsp.java:122)
	at org.apache.jsp.Wiki_jsp._jspService(Wiki_jsp.java:84)
	at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:337)
	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at net.sourceforge.stripes.controller.StripesFilter.doFilter(StripesFilter.java:246)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at com.ecyrd.jspwiki.ui.WikiServletFilter.doFilter(WikiServletFilter.java:183)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:568)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
	at java.lang.Thread.run(Thread.java:636)
Caused by: javax.servlet.ServletException: java.lang.NoClassDefFoundError: org/apache/jspwiki/api/WikiPage
	at org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:850)
	at org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:779)
	at org.apache.jsp.templates.default_.PageTab_jsp._jspService(PageTab_jsp.java:458)
	at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
	... 53 more
Caused by: java.lang.NoClassDefFoundError: org/apache/jspwiki/api/WikiPage
	at org.apache.jsp.templates.default_.PageTab_jsp._jspService(PageTab_jsp.java:116)
	... 56 more
Caused by: java.lang.ClassNotFoundException: org.apache.jspwiki.api.WikiPage
	at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
	at org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:134)
	at org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:66)
	at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:336)