1

我在使用 apache tomcat 版本 7 时遇到了问题。我在记事本中创建了一个简单的 index.jsp 文件,并在 scriptlet 标记中编写了以下 JDBC 代码:

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection c = DriverManager.getConnection("jdbc:odbc:testdsn");

out.println(c);
            Statement stmt = c.createStatement();

ResultSet rs = stmt.executeQuery("select * from login");

while(rs.next())
{
    out.println(rs.getString(1));
}

我将与 WEB-INF 平行的 JSP 文件放在名为“test”的文件夹中,其中包含 WEB-INF 中的 classes 文件夹和 web.xml。我使用cmd创建了一个war文件并将其部署到tomcat。

当我尝试运行 index.jsp 文件时,它显示错误 data source name not found 并且未指定默认驱动程序。

我知道为什么这个错误出现在 Java 中,但这次我无法解决它。

问题是我已经创建了必要的 dsn,但它仍然不接受并显示未找到数据源名称。

堆栈跟踪是:

org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:568)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:455)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)

根本原因

javax.servlet.ServletException: java.sql.SQLException: [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:912)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:841)
org.apache.jsp.index_jsp._jspService(index_jsp.java:98)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
4

0 回答 0