Netbeans错误:模式不存在

3

我想在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命令时完全正常。

你能否在你的数据库中执行相同的SQL语句并检查是否存在相同的错误? - Cesar Loachamin
所以我在我的数据库中执行了它,它完全正常工作。 - Urvah Shabbir
如果您遇到了这个问题,我认为原因是数据源jdbc/cart连接到了另一个没有此模式的数据库。您可以检查数据源的url和databasename属性,以确定它是否指向正确的数据库。 - Cesar Loachamin
你解决这个问题了吗?我想我正在运行和你一样的示例,遇到了同样的问题。 - Paul Samsotha
@peeskillet...通常是连接问题。我不记得我是如何解决的,但基本上是试错法。检查连接池和资源、持久化单元等等...希望能起作用。 - Urvah Shabbir
1个回答

3
虽然我可能有点晚回答,但我也遇到了同样的问题并解决了它。
问题是我没有在我的中设置JDBC资源。 我将以下内容添加到我的:
<jta-data-source>jdbc/resourcename</jta-data-source>

jdbc/resourcename 更改为您的 JDBC 资源!


谢谢,虽然有点晚了。但我希望它能对未来的某个人有所帮助 :) - Urvah Shabbir

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接