0

我正在实现 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) {

        }
    }
}

where在外部 jarXMLInputSource中定义;包含在项目中(在 Eclipse 上)。


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

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

4

1 回答 1

2

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

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

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

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

于 2012-05-15T08:23:37.487 回答