我想在NetBeans中的Java应用程序中通过一个简单的JSP页面来访问我的底层数据库:
<%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<sql:query var="rslt" dataSource="jdbc/cart">
select isbn, title, quantity, price from dbsample.books
</sql:query>
<html>
<head>
<title>JDBC Connection Test</title>
</head>
<body>
<h1>Available books:</h1>
<c:forEach var="book" items="${rslt.rows}">
<b>Isbn:</b> ${book.isbn}<br/>
<b>Title:</b> ${book.title}<br/>
<b>Price:</b> $${book.price}<br/>
<b>In stock:</b> ${book.quantity}<br/>
<br/>
</c:forEach>
</body>
</html>
但我遇到了这个错误:
从dbsample.books选择isbn、标题、数量和价格:模式“DBSAMPLE”不存在
这是堆栈跟踪:
javax.servlet.ServletException: select isbn,title,quantity,price from dbsample.books:Schema 'DBSAMPLE' does not exist at org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:951)at org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java: 886)at org.apache.jsp.testPage_jsp._jspService(testPage_jsp.java:80)at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:111)at javax.servlet.http.HttpServlet.service (HttpServlet.java:790)at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:411)at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:473)at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:377)at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1682)at org.apache.catalina.core.ApplicationDispatcher.doInvoke(ApplicationDispatcher.java:875)at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:739)at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:575)at org.apache.catalina.core.ApplicationDispatcher.doDispatch(ApplicationDispatcher.java:546)at org.apache.catalina.core.ApplicationDispatcher.dispatch(ApplicationDispatcher.java:428)at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:378)at com.sun.faces.context.ExternalContextImpl.dispatch(ExternalContextImpl.java:630)at com.sun.faces.application.view.JspViewHandlingStrategy.executePageToBuildView(JspViewHandlingStrategy.java:363)at com.sun.faces.application.view.JspViewHandlingStrategy.buildView(JspViewHandlingStrategy.java:153)at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:99)at com.sun.faces.lifecycle.Phase.doPhase( Phase.java:101)at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:219)at javax.faces.webapp.FacesServlet.service(FacesServlet.java:647)at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1682)at org.apache.catalina.core.StandardWrapperValve.invoke( StandardWrapperValve.java:318)at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:160)at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:734)at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:673)at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:99)at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:174)at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:357)at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:260)at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:188)at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:191)at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java: 168)at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:189)at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119)at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter( DefaultFilterChain.java:288)at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:206)at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:136)at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:114)at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77)at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:838)at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:113)at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:115)at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:55)at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy $WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:135)at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork( AbstractThreadPool.java:564)at org.glassfish.grizzly.threadpool.AbstractThreadPool$ Worker.run(AbstractThreadPool.java:544)at java.lang.Thread.run(Thread.java:现在我已经检查了我的web.xml。据我所知,部署描述符是正确的。我已经检查了我的数据源,根据我的persistance.xml它似乎是正确的。我对数据库池进行了ping测试,也成功了。我的模式名为dbsample,有一个名为books的表。
所以我不知道为什么它说我的DBSAMPLE不存在。非常感谢任何帮助。
编辑#1:在数据库中执行SQL命令时完全正常。