经过代码比较,主要是与成功代码的比较,最终确认了问题。
不过通过这样的问题解决,也学习到了一些新的知识。
问题:SEVERE: Exception starting filter struts2
Java.lang.ClassNotFoundException: org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
...........
这个错误是tomcat服务器启动的时候发生的,说明tomcat启动的时候会读web.xml并加载过滤器。
解决过程是这样的:我使用struts2+hibernate框架,运行程序时一直都说There is no Action mapped for namespace / and action name sh.问题,但的确是正确配置struts.xml了。当时并没有考虑从web.xml来考虑,一直认为配置是正确的。也没有从tomcat启动信息中去查问题。
在无意中发现了tomcat报错SEVERE: Exception starting filter struts2。于是还认真学习了一下filter原理,类加载器,查看了控制台tomcat启动信息以及信息中的各个参数的含义等,就是想从底层来考虑这个问题。
百度了一下:1.可能是jar包出错。但是我有一个正常程序运行该jar包不会出错,应该不是该问题。2.可能是构建路径问题。我把jar包都放在WEB-INFO/bin目录下,应该没问题。.classpath文件中的<classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.web.container"/>就是说程序运行时会将WEB-INF/bin目录下jar包导入,另一种方法就是手动将User library中的jar包添加到项目发布时自动加载的目录下:选中项目,右键项目选择Properties->Deployment Assembly->new:将建立的User library加入到项目中,相应的.classpath文件也会改变。
以上两种都没有解决。但是在测试第二种方案时,考虑了把别的struts2项目关闭或在tomcat服务器中删除,因为担心别的项目是不是配置出错。
最后运行了一个正确的struts2项目,并使tomcat服务器中只运行该项目(右键tomcat服务器-->添加和删除),运行正常。这时将该项目web.xml与错误项目的web.xml比较,发现了问题:
正确:org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
错误:org.apache.struts2.dispacher.ng.filter.StrutsPrepareAndExecuteFilter
就是一个dispatcher的拼写错误,晕!搞了我几天,终于搞好了。
总结:struts2错误先1.看tomcat启动信息。2.看web.xml和struts.xml是否正确。3.看bin目录下的jar包是否正确。4.添加一些测试代码,删除一些代码并看运行结果。5.与运行正确的项目进行比较。6.从底层去思考问题。解决问题的过程也是提高的过程,当然少不了坚持。
相关推荐
2. **配置错误:** `web.xml`中的`ContextLoaderListener`配置不正确,例如类名拼写错误或路径错误等。 3. **日志配置问题:** Tomcat的日志系统配置不当可能导致异常信息未能被正确记录下来,从而难以定位具体原因...
【高二英语必修五】单词列表中涵盖了多个与科学、医学、历史和地理相关的词汇,以下是这些词汇及其相关知识点的详细解释: 1. **characteristic**:特征、特性 - 描述事物独有的特点。 2. **radium**:镭 - 一种...
2. **radium**:镭,一种放射性元素,常用于医学和工业。 3. **painter**:画家,创作绘画作品的人,也指涂漆工。 4. **put forward**:提出,将想法、建议或观点表达出来。 5. **scientific**:科学的,遵循科学...
文档标题和描述中提到的是“2018年英语A级高频词汇”,这通常是指英语学习者需要重点掌握的一系列单词,特别是在准备A级英语考试时。这些词汇涵盖了多个主题和语境,包括日常生活、人际交往、科学知识、社会问题等...
2. **Weekly**:指一周一次的出版物,如周刊,通常包含新闻、评论和娱乐内容。 3. **Stand up for**:支持或维护某人或某事,表示立场或信念。 4. **Stand-up**:单口喜剧,一种没有剧本的现场表演形式,由一个演员...
SEVERE: The web application [/xxx] registered the JDBC driver [org.logicalcobwebs.proxool.ProxoolDriver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the...
【人教版英语必修五单词表.doc】是中学阶段重要的学习资料,涵盖了多个与科学、医学、历史和日常生活中常见的词汇。以下是其中一些重点单词及其相关知识点的详细解释: 1. **characteristic**:特征;特性。这个词...
2. **Ability**: 此名词指的是某人的才能或技能,如:She possesses the ability to solve complex problems. 3. **Abnormal**: 形容词,用于描述不符合正常标准或行为异常的情况,如:The child's behavior seemed...
Eclipse搭建SSH(Struts2+Spring3+Hibernate3)框架项目涉及的知识点非常丰富,下面将对标题和描述中的知识点进行详细阐述。 首先,SSH框架是由三个非常流行的Java EE开源框架组合而成的,即Struts2、Spring和...
- 注意:如果不进行此步骤,则可能会遇到类似“org.apache.catalina.core.StandardContext filterStart SEVERE: Exception starting filter SolrRequestFilter org.apache.solr.common.SolrException: Could not ...
2. **Equivalent**: 这个词既可以用作形容词表示“相等的,等值的”,也可以作为名词表示“同等物,同义词”。在数学和化学中,它常用于表示等量或等价的概念;在语言学中,它指的是具有相似或相同意义的词语。 3. ...
在高中英语学习中,掌握必修5中的关键词汇是提高语言能力的重要环节。以下是一些必修五的重点词汇: 1. characteristics(特征):指事物特有的性质或特点。 2. environment(环境):指的是生物生活的自然条件和...
2. 严峻的(severe):这个单词用来形容挑战的严重程度,"severe challenges" 表示“严峻的挑战”,提醒我们在面对问题时要有决心和勇气。 3. 预测(predict):动词 "predict" 指的是对未来的预测或预报,常用于...
2. radium (n.) - 镭:镭是一种化学元素,具有放射性,被广泛用于医学治疗、科研和工业应用。 3. painter (n.) - 画家;油漆匠:这个词指的是一位专业创作绘画作品的人,或者是进行涂漆工作的工人。 4. put ...
Without it severe hash loss will occur. 5. What are the optimal launch parameters? The default parameters are fine in most scenario's (CUDA). For OpenCL it varies a bit more. Just play around with...
49. ANSYS计算过程中结果文件过大的处理:提供在ANSYS计算时结果文件超出限制导致计算中断的解决方案。 50. 梁、壳单元应力结果输出:讨论在LS-DYNA中输出梁、壳单元应力结果的特殊说明。 51. 考虑材料失效:在...
### Fortran常见错误及其原因分析 #### 1. Incrementally linked image -- PC correlation disabled. - **错误信息**: - `Incrementally linked image -- PC correlation disabled.` - **解释**: 此错误提示通常...
标题 "chart_instrument_severe.rar" 提示我们这是一个与图表工具或严重情况有关的压缩文件,而实际上,根据描述,这个文件可能是一个网络聊天工具的服务器端实现,类似腾讯公司的聊天应用。考虑到标签 "site:...
你需要学会如何区分真实可信的信息和不可靠的数据,以避免成为错误信息的受害者(C. victim)。这涉及到批判性思维和信息素养的培养。 2. 法律与犯罪:警方(Police)通常会怀疑(A. suspected)与犯罪事件有关的人...
- `NativeException`:当DLL调用过程中发生错误时抛出。 - `IllegalAccessException`:当尝试访问权限受限的成员时抛出。 ##### DLL调用逻辑 ```java JNative jnative = new JNative(dll_name, "Add"); // 创建一个...