Today, after upgrading Hudson from 1.343 to 1.389, updating the war package and restarting Tomcat, the following exceptions always occur when accessing any page
Dec, 9:17:01 AM Hudson. Expressionfactory2$jexlexpression evaluate Warning:caught exception evaluating:h.isunittest. Reason:java.lang.reflect.InvocationTargetException Java.lang.reflect.InvocationTargetException at Sun.reflect.GeneratedMethodAccessor124.invoke (Unknown Source) at Sun.reflect.DelegatingMethodAccessorImpl.invoke ( DELEGATINGMETHODACCESSORIMPL.JAVA:25) at Java.lang.reflect.Method.invoke (method.java:585) at Org.apache.commons.jexl.util.PropertyExecutor.execute (propertyexecutor.java:125) at Org.apache.commons.jexl.util.introspection.uberspectimpl$velgetterimpl.invoke (UberspectImpl.java:314) at ORG.APACHE.COMMONS.JEXL.PARSER.ASTARRAYACCESS.EVALUATEEXPR (astarrayaccess.java:185) at Org.apache.commons.jexl.parser.ASTIdentifier.execute (astidentifier.java:75) at Org.apache.commons.jexl.parser.ASTReference.execute (astreference.java:83) at Org.apache.commons.jexl.parser.ASTReference.value (astreference.java:57) at Org.apache.commons.jexl.parser.ASTReferenceExpression.value (AStreferenceexpression.java:51) at Org.apache.commons.jexl.ExpressionImpl.evaluate (expressionimpl.java:80) at Hudson . Expressionfactory2$jexlexpression.evaluate (expressionfactory2.java:72) at Org.apache.commons.jelly.parser.EscapingExpression.evaluate (escapingexpression.java:24) at Org.apache.commons.jelly.impl.ExpressionScript.run (expressionscript.java:66) at Org.apache.commons.jelly.impl.ScriptBlock.run (scriptblock.java:95) at Org.kohsuke.stapler.jelly.reallystatictaglibrary$1.run (reallystatictaglibrary.java:99) at Org.apache.commons.jelly.impl.ScriptBlock.run (scriptblock.java:95) at Org.kohsuke.stapler.jelly.reallystatictaglibrary$1.run (reallystatictaglibrary.java:99) at Org.apache.commons.jelly.impl.ScriptBlock.run (scriptblock.java:95) at Org.kohsuke.stapler.jelly.reallystatictaglibrary$1.run (reallystatictaglibrary.java:99) at Org.apache.commons.jelly.impl.ScriptBlock.run (scriptblock.java:95) at Org.apache.commons.jelly.tags.core.coretaglibrary$2.run (coretaglibrary.java:105) at Org.koHsuke.stapler.jelly.CallTagLibScript.run (calltaglibscript.java:119) at Org.kohsuke.stapler.jelly.CompressTag.doTag (compresstag.java:44) at Org.apache.commons.jelly.impl.TagScript.run ( tagscript.java:270) at Org.kohsuke.stapler.jelly.JellyViewScript.run (jellyviewscript.java:63) at Org.kohsuke.stapler.jelly.DefaultScriptInvoker.invokeScript (defaultscriptinvoker.java:63) at Org.kohsuke.stapler.jelly.DefaultScriptInvoker.invokeScript (defaultscriptinvoker.java:53) at Org.kohsuke.stapler.jelly.jellyfacet$1.dispatch (jellyfacet.java:90) at Org.kohsuke.stapler.Stapler.tryInvoke ( stapler.java:562) at the Org.kohsuke.stapler.Stapler.invoke (stapler.java:640) at org.kohsuke.stapler.metaclass$13. Dispatch (metaclass.java:382) at Org.kohsuke.stapler.Stapler.tryInvoke (stapler.java:562) at Org.kohsuke.stapler.Stapler.invoke (stapler.java:640) at Org.kohsuke.stapler.metaclass$7.dodispatch ( metaclass.java:242) at Org.kohsuke.stapler.NameBasedDispatcher.dispatch (namebaseddispatcher.java:53) at Org.kohsuke.stapler.sTapler.tryinvoke (stapler.java:562) at Org.kohsuke.stapler.Stapler.invoke (stapler.java:640) at Org.kohsuke.stapler.Stapler.invoke (stapler.java:478) at Org.kohsuke.stapler.Stapler.service (stapler.java:160) at Javax.servlet.http.HttpServlet.service (httpservlet.java:717) at Org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (applicationfilterchain.java:290) at Org.apache.catalina.core.ApplicationFilterChain.doFilter (applicationfilterchain.java:206) at Hudson.util.pluginservletfilter$1.dofilter (pluginservletfilter.java:94) at Hudson.util.PluginServletFilter.doFilter (pluginservletfilter.java:86) at Org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (applicationfilterchain.java:235) at Org.apache.catalina.core.ApplicationFilterChain.doFilter (applicationfilterchain.java:206) at Hudson.security.csrf.CrumbFilter.doFilter (crumbfilter.java:47) at Org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (applicationfilterchain.java:235) at Org.apache.catalina.core.aPplicationfilterchain.dofilter (applicationfilterchain.java:206) at hudson.security.chainedservletfilter$1. Dofilter (chainedservletfilter.java:84) at Hudson.security.UnwrapSecurityExceptionFilter.doFilter ( unwrapsecurityexceptionfilter.java:51) at Hudson.security.chainedservletfilter$1.dofilter ( chainedservletfilter.java:87) at Org.acegisecurity.ui.ExceptionTranslationFilter.doFilter ( exceptiontranslationfilter.java:166) at Hudson.security.chainedservletfilter$1.dofilter ( chainedservletfilter.java:87) at Org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter ( anonymousprocessingfilter.java:125) at Hudson.security.chainedservletfilter$1.dofilter (ChainedServletFilter.java :) at Org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter (remembermeprocessingfilter.java:142) At Hudson.security.chainedservletfilter$1.dofilter (chainedservletfilter.java:87) at Org.acegisecurity.ui.AbstractProcessingFilter.doFilter (abstractprocessingfilter.java:271) at Hudson.security.ChainEdservletfilter$1.dofilter (chainedservletfilter.java:87) at Org.acegisecurity.ui.basicauth.BasicProcessingFilter.doFilter (basicprocessingfilter.java:173) at Hudson.security.chainedservletfilter$1.dofilter (chainedservletfilter.java:87) at Org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter ( httpsessioncontextintegrationfilter.java:249) at Hudson.security.HttpSessionContextIntegrationFilter2.doFilter ( httpsessioncontextintegrationfilter2.java:66) at Hudson.security.chainedservletfilter$1.dofilter ( chainedservletfilter.java:87) at Hudson.security.ChainedServletFilter.doFilter (chainedservletfilter.java:76) at Hudson.security.HudsonFilter.doFilter (hudsonfilter.java:164) 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:233) at Org.apache.catalina.core.sTandardcontextvalve.invoke (standardcontextvalve.java:191) at Org.apache.catalina.authenticator.AuthenticatorBase.invoke (authenticatorbase.java:433) at Org.apache.catalina.core.StandardHostValve.invoke (standardhostvalve.java:128) at Org.apache.catalina.valves.ErrorReportValve.invoke (errorreportvalve.java:102) 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:845) 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:595) caused By:java.lang.noclassdeffounderror:hudson/main (wrong name:main) at Java.lang.ClassLoader.defineClass1 (Native Method in Java.lang.ClassLoader.defineClass (classloader.java:620) at Java.security.SecureClassLoader.defineClass(secureclassloader.java:124) at Java.net.URLClassLoader.defineClass (urlclassloader.java:260) at JAVA.NET.URLCLASSLOADER.ACCESS$100 (urlclassloader.java:56) at Java.net.urlclassloader$1.run (URLClassLoader.java : 195) at Java.security.AccessController.doPrivileged (Native method) at Java.net.URLClassLoader.findClass ( urlclassloader.java:188) at Java.lang.ClassLoader.loadClass (classloader.java:306) at sun.misc.launcher$ Appclassloader.loadclass (launcher.java:268) at Java.lang.ClassLoader.loadClass (classloader.java:251) at Org.apache.catalina.loader.WebappClassLoader.loadClass (webappclassloader.java:1302) at Org.apache.catalina.loader.WebappClassLoader.loadClass (webappclassloader.java:1233) at Java.lang.ClassLoader.loadClassInternal (classloader.java:319) at Hudson. Functions.getisunittest (functions.java:1283) ... Bayi more
Search on the Internet is said to upgrade Hudson is not completely caused, but follow the steps to try again or appear above the exception, steps are as follows:
1. Shutdown Tomcat
2. Delete Webapps/hudson directory and Webapps/hudson.war file
3. Copy new Hudson.war package to Webapps/directory
4. Start Tomcat
Finally found a solution in http://issues.hudson-ci.org/browse/HUDSON-7137.
1. Shutdown Tomcat
2. Delete Webapps/hudson/winstone.jar
3. Start Tomcat
Visit Hudson again, everything ok!