无法使用 Netbeans 创建与 GlassFish 数据库的连接?

Unable to create connection to GlassFish database with Netbeans?

我正在使用 Netbeans 8.1 beta 和 Glassfish server 4.1,Mysql。

每次我在我的 Web 应用程序与数据库之间创建连接时,它都无法执行。

Index.jsp 文件:

<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql"%>
<%-- 
    Document   : index
    Created on : Sep 14, 2015, Sep 14, 2015 12:48:03 AM
    Author     : ESAJ
--%>
<link rel="stylesheet" type="text/css" href="style.css">



<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Samir</title>
    </head>
    <body>
        <h1><span style="color:#FF0000;">IFPWAFCAD</span></h1>
        <table border="0">
            <thead>
                <tr>
                    <th>IFPWAFCAD offers expert counseling in a wide range of fields.</th>
                </tr>
            </thead>
            <tbody>
                <tr>
                    <td>
                        <form action="response.jsp">
                            <strong>Select a subject:</strong>
                        </form>
                        <select name="subject_id">
                            <option></option>
                            <option></option>
                        </select>
                        <input type="submit" value="submit" />
                    </td>
                </tr>
                <tr>
                    <td>To view the contact details of an IFPWAFCAD certified former
                        professional wrestler in your area, select a subject below:</td>
                </tr>
            </tbody>
        </table>
        <sql:query var="subject" dataSource="jdbc/IFPWAFCAD">
            SELECT subject_id, name FROM Subject
        </sql:query>
        <table border="1">
            <!-- column headers -->
            <tr>
                <c:forEach var="columnName" items="${subjects.columnNames}">
                    <th><c:out value="${columnName}"/></th>
                    </c:forEach>
            </tr>
            <!-- column data -->
            <c:forEach var="row" items="${subjects.rowsByIndex}">
                <tr>
                    <c:forEach var="column" items="${row}">
                        <td><c:out value="${column}"/></td>
                    </c:forEach>
                </tr>
            </c:forEach>
        </table>
    </body>
</html>

Glassfish resources.xml 字段:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE resources PUBLIC "-//GlassFish.org//DTD GlassFish Application Server 3.1 Resource Definitions//EN" "http://glassfish.org/dtds/glassfish-resources_1_5.dtd">
<resources>
  <jdbc-resource enabled="true" jndi-name="jdbc/IFPWAFCAD" object-type="user" pool-name="IfpwafcadPool">
    <description/>
  </jdbc-resource>
  <jdbc-connection-pool allow-non-component-callers="false" associate-with-thread="false" connection-creation-retry-attempts="0" connection-creation-retry-interval-in-seconds="10" connection-leak-reclaim="false" connection-leak-timeout-in-seconds="0" connection-validation-method="auto-commit" datasource-classname="com.mysql.jdbc.jdbc2.optional.MysqlDataSource" fail-all-connections="false" idle-timeout-in-seconds="300" is-connection-validation-required="false" is-isolation-level-guaranteed="true" lazy-connection-association="false" lazy-connection-enlistment="false" match-connections="false" max-connection-usage-count="0" max-pool-size="32" max-wait-time-in-millis="60000" name="IfpwafcadPool" non-transactional-connections="false" pool-resize-quantity="2" res-type="javax.sql.ConnectionPoolDataSource" statement-timeout-in-seconds="-1" steady-pool-size="8" validate-atmost-once-period-in-seconds="0" wrap-jdbc-objects="false">
    <property name="URL" value="jdbc:mysql://localhost:3306/mynewdatabase?zeroDateTimeBehavior=convertToNull"/>
    <property name="User" value="root"/>
    <property name="Password" value="admin"/>
  </jdbc-connection-pool>
</resources>

我已经将 Jar 文件复制到 glassfish 库,并且我已经添加了对 web.xml 的引用。

我遇到这个错误:

描述服务器遇到内部错误,无法完成此请求。

异常

javax.servlet.ServletException: javax.servlet.jsp.JspException: Unable to get connection, DataSource invalid: "java.sql.SQLException: No suitable driver found for jdbc/IFPWAFCAD"

根本原因

javax.servlet.jsp.JspException: Unable to get connection, DataSource invalid: "java.sql.SQLException: No suitable driver found for jdbc/IFPWAFCAD"

您似乎缺少 MySql 的 jdbc 驱动程序。从这里下载

http://dev.mysql.com/downloads/connector/j/

解压并复制mysql-connector-java-5.x.xx-bin.jar到$glassfish_install_folder\glassfish\lib

匹配 jdk 和 mysql 版本的用户正确驱动程序,以避免错误。

经过数小时的尝试让 Ne​​tbeans (8.2) 与 Glassfish 一起工作,尤其是 JDBC,我意识到 Glassfish 已停产,因此我放弃了它。而是安装了 Payara,它似乎是一个叉子。非常简单,因为您只需在 Netbeans 中使用 Glassfish 设置,只需指向一个新的方向。 要显示连接池和 JDBC 资源,请通过右键单击 Netbeans 中的服务器并选择 "View Domain Admin Control" 转到 Paraya 的管理控制台。转到 JDBC 连接池并手动添加 "IpwafcadPool"。请记住为用户 (root) 和密码 (root) 添加属性。 URL有两个属性,一大一小写。我将两者都更改为 jdbc:mysql://localhost:3306/MyNewDatabase?zeroDateTimeBehavior=convertToNull.

但是对于上面这个问题。我可以确认连接器驱动程序必须更新到最新版本。我尝试使用 mysql-connector-java-5.1.40-bin.jar (在 lib 文件夹中),重新启动 Paraya,现在它就像一个魅力。现在我终于可以继续教程 https://netbeans.org/kb/docs/web/mysql-webapp.html。是的,我通过解决这个问题学到了很多东西,所以谢谢你。