Java Tomcat+Wicket偶发NoClassDefFoundError

Java Tomcat+Wicket偶发NoClassDefFoundError,java,tomcat,wicket,classloader,Java,Tomcat,Wicket,Classloader,在加载特定页面时,我偶尔会遇到以下异常: java.lang.NoClassDefFoundError: Could not initialize class com.app.item.search.SearchResultPanel at com.app.item.search.SearchResultPage.initialize(SearchResultPage.java:86) at com.app.core.layout.BasePage.onIniti

在加载特定页面时,我偶尔会遇到以下异常:

java.lang.NoClassDefFoundError: Could not initialize class com.app.item.search.SearchResultPanel
        at com.app.item.search.SearchResultPage.initialize(SearchResultPage.java:86)
        at com.app.core.layout.BasePage.onInitialize(BasePage.java:147)
        at org.apache.wicket.Component.fireInitialize(Component.java:864)
        at org.apache.wicket.MarkupContainer.internalInitialize(MarkupContainer.java:955)
        at org.apache.wicket.Page.isPageStateless(Page.java:464)
        at org.apache.wicket.core.request.mapper.AbstractBookmarkableMapper.getPageInfo(AbstractBookmarkableMapper.java:447                                                                                                                  )
        at org.apache.wicket.core.request.mapper.AbstractBookmarkableMapper.mapHandler(AbstractBookmarkableMapper.java:391)
        at org.apache.wicket.request.mapper.mount.UnmountedMapperAdapter.mapHandler(UnmountedMapperAdapter.java:61)
        at org.apache.wicket.request.mapper.mount.MountMapper.mapHandler(MountMapper.java:145)
        at org.apache.wicket.request.mapper.CompoundRequestMapper.mapHandler(CompoundRequestMapper.java:215)
        at org.apache.wicket.request.cycle.RequestCycle.mapUrlFor(RequestCycle.java:429)
        at org.apache.wicket.request.handler.render.WebPageRenderer.respond(WebPageRenderer.java:271)
        at org.apache.wicket.core.request.handler.RenderPageRequestHandler.respond(RenderPageRequestHandler.java:175)
        at org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:862)
        at org.apache.wicket.request.RequestHandlerStack.execute(RequestHandlerStack.java:64)
        at org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:261)
        at org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:218)
        at org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:289)
        --- CUT ---
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
        at java.lang.Thread.run(Thread.java:619)
通过重启tomcat 2、3、4或5次,问题自行解决,并且只有在部署到开发/集成环境时才会发生。在我的开发虚拟机上,它从未发生过。而且它只影响几个页面/面板,始终影响它们

SearchResultPanel是一个扩展wicket Panel类的简单类

在catalina.out上,我看到搜索结果是从Lucene加载的,但是当它显示页面时,我收到上面的异常和wicket/tomcat提供的404页面

SearchResultPanel的构造函数:

public SearchResultPanel(String id, final SearchResult resultList)
生成异常SearchResultPage:86的行:

SearchResultPanel resultPanel = new SearchResultPanel("searchResults",
                results);
SearchResultPanel位于应用程序的WEB-INF文件夹中:

# locate SearchResultPanel
/var/lib/tomcat7/webapps/app/WEB-INF/classes/com/app/item/search/SearchResultPanel$1.class
/var/lib/tomcat7/webapps/app/WEB-INF/classes/com/app/item/search/SearchResultPanel$2.class
/var/lib/tomcat7/webapps/app/WEB-INF/classes/com/app/item/search/SearchResultPanel$3.class
/var/lib/tomcat7/webapps/app/WEB-INF/classes/com/app/item/search/SearchResultPanel$4.class
/var/lib/tomcat7/webapps/app/WEB-INF/classes/com/app/item/search/SearchResultPanel$5.class
/var/lib/tomcat7/webapps/app/WEB-INF/classes/com/app/item/search/SearchResultPanel$6.class
/var/lib/tomcat7/webapps/app/WEB-INF/classes/com/app/item/search/SearchResultPanel$7.class
/var/lib/tomcat7/webapps/app/WEB-INF/classes/com/app/item/search/SearchResultPanel$8.class
/var/lib/tomcat7/webapps/app/WEB-INF/classes/com/app/item/search/SearchResultPanel$ItemFragment$1.class
/var/lib/tomcat7/webapps/app/WEB-INF/classes/com/app/item/search/SearchResultPanel$ItemFragment$2.class
/var/lib/tomcat7/webapps/app/WEB-INF/classes/com/app/item/search/SearchResultPanel$ItemFragment$3.class
/var/lib/tomcat7/webapps/app/WEB-INF/classes/com/app/item/search/SearchResultPanel$ItemFragment.class
/var/lib/tomcat7/webapps/app/WEB-INF/classes/com/app/item/search/SearchResultPanel$SortImageModel.class
/var/lib/tomcat7/webapps/app/WEB-INF/classes/com/app/item/search/SearchResultPanel.class
/var/lib/tomcat7/webapps/app/WEB-INF/classes/com/app/item/search/SearchResultPanel.html
使用:

边门:6.14.0 ApacheTomcat/7.0.26 您能进一步建议我如何调试这个类加载问题吗


多谢各位

检查客户端和服务器端的java版本,如果您在服务器端使用较低版本的java,则可能会发生此异常通常意味着在类的静态块中引发了异常。请检查一下,我也有同样的问题。我重新开始,一切都很好,但一切都很顺利。