Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/373.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
Java 带maven客户表单web应用程序的Spring MVC不工作_Java_Mysql_Hibernate_Maven_Spring Mvc - Fatal编程技术网

Java 带maven客户表单web应用程序的Spring MVC不工作

Java 带maven客户表单web应用程序的Spring MVC不工作,java,mysql,hibernate,maven,spring-mvc,Java,Mysql,Hibernate,Maven,Spring Mvc,我是Spring MVC新手,我正在尝试编写一个简单的web应用程序来开始使用Spring。我不知道应用程序没有在哪里执行。导入此Maven项目代码并在IDE中运行。请在代码方面帮助我运行该项目 以下是我所拥有的: web.xml: <?xml version="1.0" encoding="UTF-8" ?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmln

我是Spring MVC新手,我正在尝试编写一个简单的web应用程序来开始使用Spring。我不知道应用程序没有在哪里执行。导入此Maven项目代码并在IDE中运行。请在代码方面帮助我运行该项目

以下是我所拥有的:

web.xml:

<?xml version="1.0" encoding="UTF-8" ?> 
  <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
  <display-name>spring-crm-rest</display-name> 
  <absolute-ordering /> 
  <welcome-file-list>
  <welcome-file>list-customers.jsp</welcome-file> 
  <welcome-file>index.html</welcome-file> 
  </welcome-file-list>
  <servlet>
  <servlet-name>dispatcher</servlet-name> 
  <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
  <init-param>
  <param-name>contextConfigLocation</param-name> 
  <param-value>/WEB-INF/spring-crm-rest-demo-servlet.xml</param-value> 
  </init-param>
  <load-on-startup>1</load-on-startup> 
  </servlet>
  <servlet-mapping>
  <servlet-name>dispatcher</servlet-name> 
  <url-pattern>/</url-pattern> 
  </servlet-mapping>
  </web-app>
接口:CustomerDAO.java

package com.luv2code.springdemo.dao;

import java.util.List;

import com.luv2code.springdemo.entity.Customer;


public interface CustomerDAO {

    public List<Customer> getCustomers();
}

我不熟悉Spring MVC+Hibrenate和MySql。当运行我的应用程序时,浏览器未点击控制器,不包括list-controller.jsp页面。导入此Maven项目代码并在IDE中运行。请在代码中帮助我运行项目。

在数据库连接中,您不需要使用:,并且您需要验证数据库端口是否为3306

 <!--  Step 1: Define Database DataSource / connection pool --> 
      <bean id="myDataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
      <property name="driverClass" value="com.mysql.jdbc.Driver" /> 
      <property name="jdbcUrl" value="jdbc:mysql://127.0.0.1:3306/demo_customer_db" /> 
      <property name="user" value="hbstudent" /> 
      <property name="password" value="hbstudent" />


最后需要确定的是,如果用户
hbstudent
拥有所有用户帐户,这看起来像是数据库连接问题:

试试这个

<!-- declare datasource bean -->  

 <bean id="dataSource"  
  class="org.springframework.jdbc.datasource.DriverManagerDataSource">  
  <property name="driverClassName" value="com.mysql.jdbc.Driver" />  
  <property name="url" value="jdbc:mysql://localhost:3306/databaseName? 
   useSSL=false"/>  
  <property name="username" value="databaseUsername" />  
  <property name="password" value="databasePassword" />  
 </bean> 

以下是一个项目:


你好,老板,项目很好,对你来说很好:)这是控制台:异常org.springframework.web.util.NestedServletException:请求处理失败;嵌套异常为org.springframework.transaction.CannotCreateTransactionException:无法打开事务的Hibernate会话;嵌套异常是org.hibernate.exception.genericjdbception:无法获取JDBC连接org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:982)您可以在这里找到我的项目,我使用了almoste相同的技术;尝试删除数据库并创建一个空的onehello,brother未在我的控制台中运行:HTTP状态500–内部服务器错误--------------------------------------------------------------------为Servlet[dispatcher]键入异常报告消息Servlet.init()引发异常说明服务器遇到意外情况,无法满足请求。异常javax.servlet.ServletException:servlet[dispatcher]的servlet.init()抛出异常org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:490)设置属性值时出错;嵌套异常为org.springframework.beans.NotWritablePropertyException:bean类[org.springframework.jdbc.datasource.DriverManager数据源]的无效属性“jdbcUrl”:bean属性“jdbcUrl”不可写或具有无效的setter方法。setter的参数类型与getter的返回类型匹配吗?
package com.luv2code.springdemo.dao;

import java.util.List;

import com.luv2code.springdemo.entity.Customer;


public interface CustomerDAO {

    public List<Customer> getCustomers();
}
package com.luv2code.springdemo.dao;

import java.util.List;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.query.Query;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;

import com.luv2code.springdemo.entity.Customer;

@Repository
public class CustomerDAOImpl implements CustomerDAO {

    // need to inject the session factory
    @Autowired
    private SessionFactory sessionFactory;

    @Override
    @Transactional
    public List<Customer> getCustomers() {

        // get the current hibernate session
        Session currentSession = sessionFactory.getCurrentSession();

        // create a query 
        Query<Customer> theQuery =
                currentSession.createQuery("from Customer", Customer.class);

        // execute query and get result list
        List<Customer> customers = theQuery.getResultList();

        // return the list
        return customers;
    }

}
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

<!DOCTYPE html>

<html>
<head>
<title>List Customers</title>
</head>

<body>

    <div id="wrapper">
        <div id="header">
            <h2>CRF-Customer Registration Form</h2>
        </div>
    </div>

    <div id="container">
        <div id="content">
        <!-- add out html table here -->
            <table>
                <tr>
                    <th>First Name</th>
                    <th>Last Name</th>
                    <th>Father Name</th>
                    <th>Gender</th>
                    <th>Dob</th>
                    <th>Address</th>
                </tr>

                <!-- loop over and print our customers -->
                <c:forEach var="tempCustomer" items="${customers}">

                    <tr>
                        <td> <c:out value="${tempCustomer.firstName}" /></td>
                        <td> <c:out value="${tempCustomer.lastName}" /></td>
                        <td> <c:out value="${tempCustomer.fatherName}" /></td>
                        <td> <c:out value="${tempCustomer.gender}" /></td>
                        <td> <c:out value="${tempCustomer.dob}" /></td>
                        <td> <c:out value="${tempCustomer.address}" /></td>

                        <%-- <td> ${tempCustomer.lastName} </td>
                        <td> ${tempCustomer.fatherName} </td>
                        <td> ${tempCustomer.gender} </td>
                        <td> ${tempCustomer.dob} </td>
                        <td> ${tempCustomer.address} </td> --%>
                    </tr>


                </c:forEach>

            </table>

        </div>

    </div>      

</body>
</html>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

    <modelVersion>4.0.0</modelVersion>
    <groupId>com.luv2code.springdemo</groupId>
    <artifactId>spring-crm-rest</artifactId>
    <version>1.0.0</version>
    <packaging>war</packaging>

    <properties>
        <springframework.version>5.0.6.RELEASE</springframework.version>
        <hibernate.version>5.4.1.Final</hibernate.version>
        <mysql.connector.version>5.1.6</mysql.connector.version>
        <c3po.version>0.9.2.1</c3po.version>

        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
    </properties>

    <dependencies>

        <!-- Spring -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>${springframework.version}</version>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-tx</artifactId>
            <version>${springframework.version}</version>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-orm</artifactId>
            <version>${springframework.version}</version>
        </dependency>

        <!-- Add Jackson for JSON converters -->
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>2.9.5</version>
        </dependency>

        <!-- Hibernate -->
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-core</artifactId>
            <version>${hibernate.version}</version>
        </dependency>

        <!-- MySQL -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>${mysql.connector.version}</version>
        </dependency>

        <!-- C3PO -->
        <dependency>
            <groupId>com.mchange</groupId>
            <artifactId>c3p0</artifactId>
            <version>${c3po.version}</version>
        </dependency>

        <!-- Servlet+JSP+JSTL -->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>3.1.0</version>
        </dependency>

        <dependency>
            <groupId>javax.servlet.jsp</groupId>
            <artifactId>javax.servlet.jsp-api</artifactId>
            <version>2.3.1</version>
        </dependency>

        <!-- to compensate for java 9+ not including jaxb -->
        <dependency>
            <groupId>javax.xml.bind</groupId>
            <artifactId>jaxb-api</artifactId>
            <version>2.3.0</version>
        </dependency>

        <dependency>
            <groupId>jstl</groupId> 
            <artifactId>jstl</artifactId> 
            <version>1.2</version> 
        </dependency>

    </dependencies>

    <build>

        <finalName>spring-crm-rest</finalName>

        <plugins>

            <!-- Builds a Web Application Archive (WAR) file from the project output 
                and its dependencies. -->
            <plugin>
                <!-- Add Maven coordinates (GAV) for: maven-war-plugin -->
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <version>3.2.0</version>
            </plugin>

        </plugins>
    </build>
</project>
HTTP Status 500 – Internal Server Error
Type Exception Report

Message Request processing failed; nested exception is org.springframework.transaction.CannotCreateTransactionException: Could not open Hibernate Session for transaction; nested exception is org.hibernate.exception.GenericJDBCException: Unable to acquire JDBC Connection

Description The server encountered an unexpected condition that prevented it from fulfilling the request.

Exception

org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.springframework.transaction.CannotCreateTransactionException: Could not open Hibernate Session for transaction; nested exception is org.hibernate.exception.GenericJDBCException: Unable to acquire JDBC Connection
    org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:982)
    org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:866)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:634)
    org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:851)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
Root Cause

org.springframework.transaction.CannotCreateTransactionException: Could not open Hibernate Session for transaction; nested exception is org.hibernate.exception.GenericJDBCException: Unable to acquire JDBC Connection
    org.springframework.orm.hibernate5.HibernateTransactionManager.doBegin(HibernateTransactionManager.java:564)
 <!--  Step 1: Define Database DataSource / connection pool --> 
      <bean id="myDataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
      <property name="driverClass" value="com.mysql.jdbc.Driver" /> 
      <property name="jdbcUrl" value="jdbc:mysql://127.0.0.1:3306/demo_customer_db" /> 
      <property name="user" value="hbstudent" /> 
      <property name="password" value="hbstudent" />
<!-- declare datasource bean -->  

 <bean id="dataSource"  
  class="org.springframework.jdbc.datasource.DriverManagerDataSource">  
  <property name="driverClassName" value="com.mysql.jdbc.Driver" />  
  <property name="url" value="jdbc:mysql://localhost:3306/databaseName? 
   useSSL=false"/>  
  <property name="username" value="databaseUsername" />  
  <property name="password" value="databasePassword" />  
 </bean>