使用ServeltContextListener中外部定义的类

时间:2012-05-15 08:16:26

标签: java tomcat servlets noclassdeffounderror

我正在实现ServletContextListener:

public class Listener implements ServletContextListener {

    public void contextInitialized(ServletContextEvent arg0) {

        ServletContext context=arg0.getServletContext();

        try {
            XMLInputSource in = new XMLInputSource("/home/ahmed/Desktop/AE.xml");
        } catch (IOException e) {

        }
    }
}

外部广告中定义XMLInputSource的位置;包含在项目中(在Eclipse上)。


但是,尝试使用此外部类会导致异常: java.lang.NoClassDefFoundError

有任何帮助吗? Tomcat是否需要以特殊方式注册使用的外部库?

1 个答案:

答案 0 :(得分:2)

Webapp库必须存储在已部署的Web应用程序的/ WEB-INF / lib目录中。在WTP eclipse项目中,你只需要将jar放在WebContent / WEB-INF / lib文件夹中,这个jar就会自动

  • 在项目的构建类路径中
  • 部署在/ WEB-INF / lib by Eclipse

因此,将其从构建路径中删除,并将其放在WebContent / WEB-INF / lib中。

请不要像你在代码片段中那样吞下异常!如果你不能抛出IOException,至少抛出一个包装原始IOException的运行时异常。