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) {

        }
    }
}

whereXMLInputSource外部 jarで定義されています。プロジェクトに含まれています(Eclipse上)。


ただし、この外部クラスを使用しようとすると、例外が発生します: java.lang.NoClassDefFoundError

何か助けはありますか?Tomcat は、使用する外部ライブラリを特別な方法で登録する必要がありますか??

4

1 に答える 1

2

Web アプリケーション ライブラリは、デプロイされた Web アプリケーションの /WEB-INF/lib ディレクトリに格納する必要があります。WTP Eclipse プロジェクトでは、jar を WebContent/WEB-INF/lib フォルダーにドロップするだけで、この jar は自動的に

  • プロジェクトのビルド クラスパスで
  • Eclipse によって /WEB-INF/lib の下にデプロイされます

したがって、ビルド パスから削除し、WebContent/WEB-INF/lib にドロップします。

コード スニペットで行っているように、例外を飲み込まないでください。IOException をスローできない場合は、少なくとも元の IOException をラップするランタイム例外をスローします。

于 2012-05-15T08:23:37.487 に答える