﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-czmchen-随笔分类-ssh</title><link>http://www.blogjava.net/czmchen/category/40235.html</link><description /><language>zh-cn</language><lastBuildDate>Sat, 13 Jun 2009 14:45:21 GMT</lastBuildDate><pubDate>Sat, 13 Jun 2009 14:45:21 GMT</pubDate><ttl>60</ttl><item><title>ssh经典异常！</title><link>http://www.blogjava.net/czmchen/archive/2009/06/13/282073.html</link><dc:creator>陈周敏</dc:creator><author>陈周敏</author><pubDate>Sat, 13 Jun 2009 12:20:00 GMT</pubDate><guid>http://www.blogjava.net/czmchen/archive/2009/06/13/282073.html</guid><wfw:comment>http://www.blogjava.net/czmchen/comments/282073.html</wfw:comment><comments>http://www.blogjava.net/czmchen/archive/2009/06/13/282073.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.blogjava.net/czmchen/comments/commentRss/282073.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/czmchen/services/trackbacks/282073.html</trackback:ping><description><![CDATA[我对异常抛出的情况作啦一个总结，下面的是我在做项目的时候，处理抛出来的经典异常。<br />
<br />
严重: <span style="color: red">action: null<br />
java.lang.ClassNotFoundException: org.springframework.web.struts.ContextLoaderPlugIn<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1387)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at org.apache.struts.util.RequestUtils.applicationClass(RequestUtils.java:124)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at org.apache.struts.util.RequestUtils.applicationInstance(RequestUtils.java:172)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at org.apache.struts.util.RequestUtils.applicationInstance(RequestUtils.java:147)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at org.apache.struts.action.ActionServlet.initModulePlugIns(ActionServlet.java:842)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at org.apache.struts.action.ActionServlet.init(ActionServlet.java:359)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at javax.servlet.GenericServlet.init(GenericServlet.java:212)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1172)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:992)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4058)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at org.apache.catalina.core.StandardContext.start(StandardContext.java:4371)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:627)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:511)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1231)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at java.lang.reflect.Method.invoke(Method.java:597)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:297)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:836)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:761)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at org.apache.catalina.manager.ManagerServlet.check(ManagerServlet.java:1471)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at org.apache.catalina.manager.ManagerServlet.deploy(ManagerServlet.java:824)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at org.apache.catalina.manager.ManagerServlet.doGet(ManagerServlet.java:350)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:525)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at java.lang.Thread.run(Thread.java:619)<br />
</span>2009-6-13 19:47:25 org.apache.catalina.core.ApplicationContext log<br />
<br />
<br />
这个异常我看不少人都遇到吧，看着这个异常，你觉得是不是很郁闷，刚开始看到这个action: null就想：&#8220;是Struts里出啦问题，肯定是参数不对应ActionForm造成的吧！&#8221;然后就拼命地在页面和ActionForm来作对照，对来对去都是一样啊！怎么还是有错呢？刚刚开始我也是这样想的，可是做啦一大堆的无用功后，就发现我这种想法是错的！每次部署后还是这个错，你再细心地看下面的那个错误&#8220;<span style="color: red">java.lang.ClassNotFoundException: org.springframework.web.struts.ContextLoaderPlugIn</span>&#8221;，这个org.springframework.web.struts.ContextLoaderPlugIn这个东西是不是很熟悉呢？仔细找下看，发现你的Struts-config.xml里面是不是也有这样一段话：<br />
&nbsp;&nbsp;&nbsp; &lt;plug-in className="<span style="color: red">org.springframework.web.struts.ContextLoaderPlugIn</span>"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;set-property property="contextConfigLocation"<br />
&nbsp;&nbsp;&nbsp;value="/WEB-INF/applicationContext.xml"/&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;/plug-in&gt;<br />
问题就出在这里啦！不过有些人找到问题所在后，也不会认为这里有问题，就算这里有问题，最多就是Spring的配置文件不对应！然后就去修改一下配置文件，可是还是于是无补！<br />
<br />
我经过一段时间的思考后，就想啦一下，这个既然是Spring的配置文件，那一定和它的插件有关，是不是Spring和Struts整合不好呢？然后就查了一下库文件，发现Spring库文件导入的是很少！上网查下资料，发现对于这个问题的很少有答案，有人提出的可是找不到问题所在！我就去啦Spring的官网下载它的库文件和一些相应的资料来，在找资料的过程中，我也下载啦一个叫spring-struts.jar的库文件，这个文件看起来好象是Spring整合Struts的库文件！有啦这几个东西，我就开始开工测试<br />
我就先按我的猜想，先导入spring-struts.jar这文件，部署后，发现没错误，运行也没错！果然证实我的想法没错<br />
然后我还把下载来的Spring官网的最新的库文件，发现找不到spring-struts.jar这个库文件。然后我一个个测试后，原来这个库文件是集成在spring-web.jar里面啦！<br />
我把spring-struts.jar去掉后，导入Spring官方的最新的相关库文件后（不能全部导，全部导入也会有错误，用到的才能导！），程序也没发生任何错误 <br />
<br />
以下的是我用到的库文件，本人测试过没问题<br />
http://www.blogjava.net/Files/czmchen/ssh中Spring的库文件.rar<br />
http://www.blogjava.net/Files/czmchen/spring-struts.jar.zip 
<img src ="http://www.blogjava.net/czmchen/aggbug/282073.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/czmchen/" target="_blank">陈周敏</a> 2009-06-13 20:20 <a href="http://www.blogjava.net/czmchen/archive/2009/06/13/282073.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>