Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring 春意盎然冬眠_Spring_Hibernate_Rest_Tomcat - Fatal编程技术网

Spring 春意盎然冬眠

Spring 春意盎然冬眠,spring,hibernate,rest,tomcat,Spring,Hibernate,Rest,Tomcat,我在postgres中有一个非常简单的数据库,我使用hibernate“连接”到它。一切正常,我用hibernate测试了数据库,到目前为止没有问题 这是我的刀 @Repository("clientsBasicDao") @Transactional public class ClientsBasicDaoImpl implements ClientsBasicDao { private Log log = LogFactory.getLog(ClientsBasicDaoImpl.cla

我在postgres中有一个非常简单的数据库,我使用hibernate“连接”到它。一切正常,我用hibernate测试了数据库,到目前为止没有问题

这是我的刀

@Repository("clientsBasicDao")
@Transactional
public class ClientsBasicDaoImpl implements ClientsBasicDao {


private Log log = LogFactory.getLog(ClientsBasicDaoImpl.class);
private SessionFactory sessionFactory;  
private Session session;


public SessionFactory getSessionFactory() {
    return sessionFactory;
}


@Resource(name="sessionFactory")
public void setSessionFactory(SessionFactory sessionFactory) {
    this.sessionFactory = sessionFactory;
    session = sessionFactory.openSession();
}

@SuppressWarnings("unchecked")
@Transactional(readOnly=true)
public List<ClientsBasic> findAllClients() throws HibernateException{
    return session.createQuery("from ClientsBasic").list();
}

public ClientsBasic findClientById(int id) throws HibernateException {
    return (ClientsBasic) session.
            getNamedQuery("ClientsBasic.findById").setParameter("id", id).uniqueResult();
}

public ClientsBasic findClientByEmail(String email) throws HibernateException{
    return (ClientsBasic) session.
            getNamedQuery("ClientsBasic.findByEmail").setParameter("email", email).uniqueResult();
}

@SuppressWarnings("unchecked")
public List<ClientsBasic> findDirectClients() throws HibernateException{
    return session.getNamedQuery("ClientsBasic.findDirectClients").list();
}

@SuppressWarnings("unchecked")
public List<ClientsBasic> findIndirectClients() throws HibernateException{
    return session.getNamedQuery("ClientsBasic.findIndirectClients").list();
}

public ClientsBasic save(ClientsBasic client) throws HibernateException {
    Transaction tx = null;
    tx = session.beginTransaction();
    session.saveOrUpdate(client);
    tx.commit();
    log.info("Client saved with id: " + client.getClientId());

    return client;
}
public void delete(ClientsBasic client) throws HibernateException  {
    Transaction tx = null;

    tx = session.beginTransaction();
    Set<Resources> res = client.getClientResources();
    if(res.size() > 0){ //there are client access resources for this client
        Iterator<Resources> it = res.iterator();
        while(it.hasNext()){
            Resources resource = it.next();
            resource.getClientsBasics().remove(client);
        }
    }
    session.delete(client);
    tx.commit();
    log.info("Client deleted with id: " + client.getClientId());    

}
}

这里是错误

HTTP Status 500 - Handler processing failed; nested exception is java.lang.NoClassDefFoundError: org/hibernate/HibernateException 

org.springframework.web.util.NestedServletException: Handler processing failed; nested exception is java.lang.NoClassDefFoundError: org/hibernate/HibernateException
org.springframework.web.servlet.DispatcherServlet.triggerAfterCompletionWithError(DispatcherServlet.java:1284)
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:965)
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:876)
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:931)
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:822)
javax.servlet.http.HttpServlet.service(HttpServlet.java:620)
org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:807)
javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
My web.xml:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>test</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>


<servlet>
    <servlet-name>rest</servlet-name>
    <servlet-class>
        org.springframework.web.servlet.DispatcherServlet
    </servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>rest</servlet-name>
    <url-pattern>/*</url-pattern>
</servlet-mapping>
</web-app>

测试
index.html
index.htm
index.jsp
default.html
default.htm
default.jsp
休息
org.springframework.web.servlet.DispatcherServlet
1.
休息
/*
和调度员:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:p="http://www.springframework.org/schema/p"
    xsi:schemaLocation="
        http://www.springframework.org/schema/beans     
        http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context-4.0.xsd
        http://www.springframework.org/schema/mvc
        http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd">
    <context:component-scan base-package="com.project.rest" />
    <mvc:annotation-driven />
  </beans>

正如我所说的,我正在努力学习rest,这是我与spring的第二周,所以这对我来说有点新鲜,但我希望这能起作用,因为数据库工作得很好

注意:我正在Tomcat v7上部署它

有人能帮我一下吗

谢谢:-)

编辑: 我将hibernate jar添加到tomcat类路径中,现在错误是
匹配的通配符是严格的,但是找不到元素“tx:annotation-driven”的声明。

看起来tomcat的类路径中缺少hibernat.jar。如果您现在开始学习,请查看spring数据jpa和spring数据rest webmvc。它会自动为你做很多事情。@Jens我怎么做?与你的问题无关,但你的刀有缺陷。永远不要打开单个会话并将其存储在类级别。需要会话时,请使用
sessionFactory.getCurrentSession()
检索会话。还要将
添加到您的配置中,以启用
@Transactional
当前它没有做任何事情,这也将允许您删除手动发送管理代码,并且您可以从方法签名中删除
抛出HibernateExcetion
。@Snox使用
@RestController
时的另一个免费提示没有必要向控制器方法添加
@ResponseBody
,因为这已经暗示了这一点。
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:p="http://www.springframework.org/schema/p"
    xsi:schemaLocation="
        http://www.springframework.org/schema/beans     
        http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context-4.0.xsd
        http://www.springframework.org/schema/mvc
        http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd">
    <context:component-scan base-package="com.project.rest" />
    <mvc:annotation-driven />
  </beans>