代码之家  ›  专栏  ›  技术社区  ›  mtnp

ClassNotFoundException:Eclipse中带有Struts2的HttpServletRequest

  •  0
  • mtnp  · 技术社区  · 4 年前

    我有两个版本的一个项目(GIT),最旧的(工作完美)和新的承诺(不工作-问题如下)。

    下面是我在Eclipse中遇到的错误:

    août 18, 2020 4:22:24 PM org.apache.catalina.core.StandardContext filterStart
    GRAVE: Exception au démarrage du filtre struts2
    java.lang.NoClassDefFoundError: HttpServletRequest
        at java.lang.Class.getDeclaredMethods0(Native Method)
        at java.lang.Class.privateGetDeclaredMethods(Unknown Source)
        at java.lang.Class.privateGetPublicMethods(Unknown Source)
        at java.lang.Class.getMethods(Unknown Source)
        at org.apache.struts2.convention.PackageBasedActionConfigBuilder.getActionAnnotations(PackageBasedActionConfigBuilder.java:877)
        at org.apache.struts2.convention.PackageBasedActionConfigBuilder.buildConfiguration(PackageBasedActionConfigBuilder.java:689)
        at org.apache.struts2.convention.PackageBasedActionConfigBuilder.buildActionConfigs(PackageBasedActionConfigBuilder.java:355)
        at org.apache.struts2.convention.ClasspathPackageProvider.loadPackages(ClasspathPackageProvider.java:53)
        at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:274)
        at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:67)
        at org.apache.struts2.dispatcher.Dispatcher.getContainer(Dispatcher.java:967)
        at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:435)
        at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:479)
        at org.apache.struts2.dispatcher.ng.InitOperations.initDispatcher(InitOperations.java:74)
        at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.init(StrutsPrepareAndExecuteFilter.java:57)
        at org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:279)
        at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:260)
        at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:105)
        at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4583)
        at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5207)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
        at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1408)
        at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1398)
        at java.util.concurrent.FutureTask.run(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)
    Caused by: java.lang.ClassNotFoundException: HttpServletRequest
        at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1333)
        at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1167)
        ... 27 more
    

    GRAVE: Exception au démarrage du filtre struts2 可以翻译为 SEVERE: Exception in start of struts2 filter

    java.lang.ClassNotFoundException: HttpServletRequest 但是我已经没有servlet api了 WEB-INF/lib 文件夹,但在 Tomcat/lib .jar 在当前修改的项目和旧项目之间。

    我该怎么办?

    0 回复  |  直到 3 年前
        1
  •  1
  •   Roman C    4 年前

    错误来自约定插件。此插件用于按约定创建其他配置对象。如果您大量使用注释为struts操作定义基于Java的配置,那么它将调用反射机制来处理创建运行时配置元素的过程。

    这个 NoClassDefFoundError 表示当前类加载器的类路径上缺少一些类。通常通过向类路径添加缺少的jar来修复。

    在许多方面,在损坏的servlet环境中缺少类会导致更改/更新servlet容器本身,并从Maven中央存储库下载正确的依赖项。

        2
  •  0
  •   mtnp    4 年前

    将现有的Eclipse服务器复制到另一个文件夹中。 在Eclipse的Servers视图中使用新文件夹创建一个新服务器。 右键单击新服务器->清理Tomcat工作目录。。。 转到运行->运行配置

    双击其中一个服务器

    服务器实例启动。住手。重新启动项目。这个问题已经消失了。