maven项目中的java.lang.ClassNotFoundException,同时尝试从web.xml加载监听器

时间:2017-05-24 10:43:22

标签: maven listener web.xml classnotfoundexception

我已经将现有的web项目转换为maven,使用的技术有:Struts 2,hibernate。侦听器扩展javax.servlet.ServletContextListener,其在web.xml中有一个条目,如下所示:

<listener>
    <listener-class>com.tcs.weserv.util.Listener</listener-class>
  </listener>

Maven项目构建成功,但是当我尝试启动服务器时,它会抛出异常:

java.lang.ClassNotFoundException: package.util.Listener

所有依赖项都在pom.xml中正确定义,侦听器在给定位置可用,但它仍会抛出ClassNotFoundException

2 个答案:

答案 0 :(得分:1)

感谢大家的宝贵意见。它有助于调试问题。实际问题是,Maven项目结构错了。当我通过选择archtype作为webapp创建maven项目时,项目结构仅包含src / main / resources。 由于我是maven的新手,我认为这是实际的项目结构,我将所有资源以及java文件复制到此文件夹中。因此,它能够在没有任何错误的情况下构建项目,但在将其部署到服务器上时,它显示的是ClassNotFoundException。

答案 1 :(得分:0)

这是未知的听众。找不到任何包含该侦听器的jar。如果您知道如何使用某些zip实用程序或jar可执行文件创建jar,那么您可以将类com.tcs.weserv.util.Listener.class复制到jar文件,同时保留文件夹结构,这对于查找相应的类非常重要。