java - 如何解决 java servlet 中的 NoClassDefFoundError?

标签 java servlets jena

我正在尝试从 java servlet 中读取一个 owl 文件。但我收到上述错误。 我以为jar文件丢失了,尝试在WEB-INF/lib中再次添加jar文件。但我仍然遇到同样的错误。请帮我解决这个错误。这是 servlet 代码:

    import java.io.FileInputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.PrintWriter;

    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;

    import com.hp.hpl.jena.ontology.OntModel;
    import com.hp.hpl.jena.rdf.model.Model;
    import com.hp.hpl.jena.rdf.model.ModelFactory;

    /**
    * Servlet implementation class testServlet
    */
    @WebServlet("/testServlet")
    public class testServlet extends HttpServlet {
private static final long serialVersionUID = 1L;

    /**
    * @see HttpServlet#HttpServlet()
    */
    public testServlet() {
     super();
     // TODO Auto-generated constructor stub
   }

/**
 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
 */
protected void doGet(HttpServletRequest request, HttpServletResponse response)            throws ServletException, IOException {
    // TODO Auto-generated method stub
}

 /**
  * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
  */
 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // TODO Auto-generated method stub


    FileInputStream fis = new FileInputStream("D:/MTech/semantic validation/code/travel.owl");  String file = request.getParameter("file");
    file=file.replace("\\", "/") ;
    System.out.println(file);




    OntModel model =  ModelFactory.createOntologyModel();
    model.read(fis, null);
    String output = "<p>loading file done</p>";
    PrintWriter out = response.getWriter();
    out.println (output);
     }

    }

这是我得到的错误

    java.lang.NoClassDefFoundError: com/hp/hpl/jena/rdf/model/ModelFactory
kanive.testServlet.doPost(testServlet.java:54)
javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
javax.servlet.http.HttpServlet.service(HttpServlet.java:728)


root cause 

java.lang.ClassNotFoundException: com.hp.hpl.jena.rdf.model.ModelFactory
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1714)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559)
kanive.testServlet.doPost(testServlet.java:54)
javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
javax.servlet.http.HttpServlet.service(HttpServlet.java:728)

最佳答案

最简单的解决方案是重新编译代码并重新部署(假设 JAR 显然位于 WEB-INF/lib 文件夹中)。

关于java - 如何解决 java servlet 中的 NoClassDefFoundError?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23309614/

相关文章:

java - 获取点击的数组项

java - ServletRegistration url 映射与 Spring DispatcherServlet 冲突

java - 通过 Java 代码插入一些数据时,Sparql 查询不会更新

java - 如何使用 Jena 将 .owl 文件导入到 Eclipse 中并创建它的实例

java - 如何在 java swing 应用程序中包含 sphinx 4

java - 使用公制方程计算 BMI,如何在 Java 中使用 GUI 转换英制测量值

java - uri.getQueryParameter ("oauth_verifier")始终为空

java - 如何使用 Servlet 显示响应中包含图像的 JSP 页面?

java - Tomcat servlet 问题 - 找不到类

rdf - 使用 Jena 为本体(RDF/XML 序列化)中的类之间的链接分配一个值