使用外部库将项目部署到 glassfish 后出现 NoClassDefFoundError

NoClassDefFoundError after deploying project to glassfish using external lib

我可能在将 java 库正确添加到我的 Java EE 项目时遇到了一些麻烦。我正在使用 intellij idea IDE.

我想在我的项目 (apache jena) 中使用外部库,并且我已经使用以下过程添加了该库: Project Structure > Modules > Dependencies > Add JARs or dirs > Select apache jena lib 目录(里面有一些 .jar 文件,比如 core ..)。

在项目中,一切似乎都正常 - 导入,对象定义..但是在本地 glassfish 服务器上部署并访问索引页面后,我得到了 NoClassDefFoundError(正是 java.lang.NoClassDefFoundError:org/apache/jena/rdf/model/ModelFactory).

package controller;


import java.io.*;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.*;
import org.apache.jena.rdf.model.*;


@WebServlet( name = "TestController", urlPatterns = {"/"})
public class TestController extends HttpServlet {

    /**
     * Processes requests for both HTTP <code>GET and POST methods.
     * @param request servlet request
     * @param response servlet response
     */
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        /* ERROR >> */
        Model model = ModelFactory.createDefaultModel();
        /* << ERROR */

        request.setAttribute("test", "test");
        request.getRequestDispatcher("test.jsp").forward(request,response);
    }

    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
    }

}

那么谁能告诉我如何解决呢?谢谢!

问题已解决: 我不得不将库添加到工件中(war 爆炸)。

程序:项目结构 > 工件 > 并且有一个关于该工件中缺少库的通知,所以我单击 "Fix(add that library into the artifact)" > 应用并完成 :)

Intellij IDEA v14.1.5