zoukankan      html  css  js  c++  java
  • Struts2环境下Tomcat启动异常:Exception starting filter struts2,报了一个java.lang.ClassNotFoundException

    在写一个struts2+hibernate整合的小例子时,启动Tomcat服务器,报了一个:

    严重: Exception starting filter struts2
    java.lang.ClassNotFoundException: org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter

      折腾了半天,终于知道了原因,在搭建struts2的环境时,一般的做法是把jar包拖到WEB-INF下的lib文件中,Tomcat启动时,会到这个目录下加载jar文件,但如果你使用的是User Libraries,那么就在lib下就没有相应的jar文件了,虽然程序编译是没有问题的,但很有可能Tomcat启动时会报这个错,

      原因很简单:eclipse发布项目的时候并未自动将引用的jar包copy到WEB-INF/目录下,导致编译器找不到所使用的class.

    百度了半天,找到了三种解决方案,一一试过了,只有两种成功解决了问题

      第一种方法(成功):

        很简单,抛弃使用User Librariy,将所有jar文件放到lib文件目录下,问题解决.但这并不是我想要的.

      第二种方法(失败):

        配置Tomcat的时候,默认选择的是"debug"模式,即调试模式,需要设置成"run"也就是运行模式

    步骤为:Windows->preferences->My eclispe->servers->找到你使用的Tomcat->Lauch.

          第三种方法(成功):

        手动将User library中的jar包添加到项目发布时自动加载的目录下:

        选中项目,右键选择Properties->Myeclispe->Deployment Assembly->new:

      

    选中你之前建好的User library,点击finish:

    重新部署项目,启动Tomcat,问题解决!~~~~~

      

  • 相关阅读:
    mybatis 源码分析(四)一二级缓存分析
    mybatis 源码分析(三)Executor 详解
    mybatis 源码分析(二)mapper 初始化
    mybatis 源码分析(一)框架结构概览
    Disruptor 详解 二
    Disruptor 详解 一
    JDK源码分析(12)之 ConcurrentHashMap 详解
    并发系列(7)之 ScheduledThreadPoolExecutor 详解
    数据结构系列(6)之 完全二叉堆
    并发系列(6)之 ThreadPoolExecutor 详解
  • 原文地址:https://www.cnblogs.com/fingerboy/p/5261105.html
Copyright © 2011-2022 走看看