使用外部库将项目部署到 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
我可能在将 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