首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >java.lang.ClassNotFoundException: org.hibernate.criterion.Projection

java.lang.ClassNotFoundException: org.hibernate.criterion.Projection
EN

Stack Overflow用户
提问于 2013-02-25 20:25:42
回答 2查看 6.2K关注 0票数 0

早上好,我不知道如何解决这个异常,我在eclipse下使用的是ApcheTomcat 7,每次运行我的servlet时都会抛出这个异常,为了更清楚起见,这里是我的servlet:

代码语言:javascript
复制
package servlets;

import java.util.*;
import java.io.IOException;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
 import dao.*;

@WebServlet("/AdminServlt")
public class AdminServlt extends HttpServlet {
private static final long serialVersionUID = 1L;
CarHome carDao;

public void init(ServletConfig config) throws ServletException{
    carDao = new CarHome();
    }

protected void doGet(HttpServletRequest request,
        HttpServletResponse response) throws ServletException, IOException {
    populateAdminView(request, response);
}

protected void doPost(HttpServletRequest request,
        HttpServletResponse response) throws ServletException, IOException {
}

  public void populateAdminView(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException{
    ArrayList productsList = (ArrayList) carDao.extractAdminAttributes();
    HttpSession session = request.getSession(true);
    session.setAttribute("product_list",productsList);
    RequestDispatcher rd = request.getRequestDispatcher("Admin.jsp");
    rd.forward(request, response);
}

}

这是CarHome.java

代码语言:javascript
复制
package dao;
import java.util.ArrayList;
import java.util.List;
import javax.naming.InitialContext;
import org.apache.commons.logging.Log;  
import org.apache.commons.logging.LogFactory;
import org.hibernate.LockMode;
import org.hibernate.SessionFactory;
import org.hibernate.criterion.*;
import entity.*;

    public class CarHome {

private static final Log log = LogFactory.getLog(CarHome.class);

private final SessionFactory sessionFactory = getSessionFactory();


public List extractAdminAttributes() {
    log.debug("Extracting car attributes for administrator view");
    try {
        ArrayList results = (ArrayList) sessionFactory
                .getCurrentSession()
                .createCriteria("pojo.Car")
                .setProjection(
                        Projections.projectionList()
                                .add(Projections.property("carDesc"))
                                .add(Projections.property("price"))
                                .add(Projections.property("quantity")));

        return results;
    } catch (RuntimeException re) {
        log.error("find by admin view failed");
        throw re;
    }
  }
  }

下面是异常的堆栈跟踪

代码语言:javascript
复制
java.lang.ClassNotFoundException: org.hibernate.criterion.Projection
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1676)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1521)
servlets.AdminServlt.init(AdminServlt.java:31)
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:462)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:562)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:395)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:250)
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:188)
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:166)
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:302)
java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
java.lang.Thread.run(Unknown Source)
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-02-28 18:50:54

我已经解决了我的问题很简单,主要原因是当我把它放在那里时,hibernate.cor.jar文件不在应用程序web内容下的lib文件夹中,它工作得很好

票数 2
EN

Stack Overflow用户

发布于 2016-06-25 22:28:44

我也面临着同样的问题,但在我的例子中,我使用eclipse重新排序了顶部的hibernate-cor.jar。

选择项目-->右键单击-->构建路径-->订单选项卡-->选择hibernate-cor.jar单击顶部

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15066950

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档