1

Apache FileUpload を使用していますが、java.lang.NoClassDefFoundError が発生します

私が最初に考えたのは、.jar がクラスパスにあるかどうかを確認することでした。(Eclipse で) 私が気付いたのは、ライブラリ領域の下に 2 つの異なるセクションがあることです。

  • アパッチ トムキャット v6.0
  • ウェブアプリ ライブラリ

他のすべてのライブラリは「Web アプリ ライブラリ」の下にリストされ、この特定のライブラリは Apache Tomcat v6.0 の下にリストされます。

これが問題の原因であると想定しています...私のコードは以下にあります...しかし、それはコードの問題ではなく設定の問題だと思います。

最後に、サーブレットから FileUpload のものを取り出したので、web.xml は問題ではありません。サーブレットは問題なく検出されます。

public class SaveImage extends HttpServlet{

public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException {
    System.out.println("Got here");
    response.setContentType("text/html;charset=UTF-8");
    boolean isMultipart = ServletFileUpload.isMultipartContent(request);
}
4

1 に答える 1

1

これクラスパスの問題でなければなりません。IDE がクラスパス上にあると考えるものは、Web サーバーがクラスパス上にあると考えるものほど重要ではありません。アプリがデプロイされた後のWEB-INF/libフォルダー (デプロイ ターゲット ディレクトリ内) には何がありますか? これが実際のクラスパスです (もちろん、Web サーバーのライブラリも含まれます)。

于 2010-12-15T06:34:01.133 に答える