Netbeans 错误:架构不存在

Posted

技术标签:

【中文标题】Netbeans 错误:架构不存在【英文标题】:Netbeans Error : Schema doesnt exist 【发布时间】:2014-01-02 20:10:20 【问题描述】:

所以我试图通过一个简单的 jsp 页面访问我在 netbeans 中的 java 应用程序中的底层数据库:

<%@ 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: 从 dbsample.books 中选择 isbn、标题、数量、价格 : 架构“DBSAMPLE”不存在 在 org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:951) 在 org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:886) 在 org.apache.jsp.testPage_jsp._jspService(testPage_jsp.java:80) 在 org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:111) 在 javax.servlet.http.HttpServlet.service(HttpServlet.java:790) 在 org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:411) 在 org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:473) 在 org.apache.jasper.servlet.JspServlet.service(JspServlet.java:377) 在 javax.servlet.http.HttpServlet.service(HttpServlet.java:790) 在 org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1682) 在 org.apache.catalina.core.ApplicationDispatcher.doInvoke(ApplicationDispatcher.java:875) 在 org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:739) 在 org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:575) 在 org.apache.catalina.core.ApplicationDispatcher.doDispatch(ApplicationDispatcher.java:546) 在 org.apache.catalina.core.ApplicationDispatcher.dispatch(ApplicationDispatcher.java:428) 在 org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:378) 在 com.sun.faces.context.ExternalContextImpl.dispatch(ExternalContextImpl.java:630) 在 com.sun.faces.application.view.JspViewHandlingStrategy.executePageToBuildView(JspViewHandlingStrategy.java:363) 在 com.sun.faces.application.view.JspViewHandlingStrategy.buildView(JspViewHandlingStrategy.java:153) 在 com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:99) 在 com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101) 在 com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:219) 在 javax.faces.webapp.FacesServlet.service(FacesServlet.java:647) 在 org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1682) 在 org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:318) 在 org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:160) 在 org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:734) 在 org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:673) 在 com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:99) 在 org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:174) 在 org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:357) 在 org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:260) 在 com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:188) 在 org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:191) 在 org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:168) 在 org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:189) 在 org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119) 在 org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:288) 在 org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:206) 在 org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:136) 在 org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:114) 在 org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77) 在 org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:838) 在 org.glassfish.grizzly.strategies.Abstractiostrategy.fireIOEvent(AbstractIOStrategy.java:113) 在 org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:115) 在 org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:55) 在 org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:135) 在 org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:564) 在 org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:544) 在 java.lang.Thread.run(Thread.java:724) 引起:java.sql.SQLSyntaxErrorException:模式'DBSAMPLE'不存在 在 org.apache.derby.client.am.SQLExceptionFactory40.getSQLException(未知来源) 在 org.apache.derby.client.am.SqlException.getSQLException(未知来源) 在 org.apache.derby.client.am.Connection.prepareStatement(未知来源) 在 com.sun.gjc.spi.base.ConnectionHolder.prepareStatement(ConnectionHolder.java:586) 在 com.sun.gjc.spi.jdbc40.ConnectionWrapper40.prepareCachedStatement(ConnectionWrapper40.java:255) 在 com.sun.gjc.spi.jdbc40.ConnectionWrapper40.prepareCachedStatement(ConnectionWrapper40.java:52) 在 com.sun.gjc.spi.ManagedConnectionImpl.prepareCachedStatement(ManagedConnectionImpl.java:992) 在 com.sun.gjc.spi.jdbc40.ConnectionWrapper40.prepareStatement(ConnectionWrapper40.java:173) 在 org.apache.taglibs.standard.tag.common.sql.QueryTagSupport.doEndTag(QueryTagSupport.java:255) 在 org.apache.jsp.testPage_jsp._jspx_meth_sql_query_0(testPage_jsp.java:119) 在 org.apache.jsp.testPage_jsp._jspService(testPage_jsp.java:60) ... 47 更多 引起:org.apache.derby.client.am.SqlException:模式'DBSAMPLE'不存在 在 org.apache.derby.client.am.Statement.completeSqlca(未知来源) 在 org.apache.derby.client.net.NetStatementReply.parsePrepareError(未知来源) 在 org.apache.derby.client.net.NetStatementReply.parsePRPSQLSTTreply(未知来源) 在 org.apache.derby.client.net.NetStatementReply.readPrepareDescribeOutput(未知来源) 在 org.apache.derby.client.net.StatementReply.readPrepareDescribeOutput(未知来源) 在 org.apache.derby.client.net.NetStatement.readPrepareDescribeOutput_(未知来源) 在 org.apache.derby.client.am.Statement.readPrepareDescribeOutput(未知来源) 在 org.apache.derby.client.am.PreparedStatement.readPrepareDescribeInputOutput(未知来源) 在 org.apache.derby.client.am.PreparedStatement.flowPrepareDescribeInputOutput(未知来源) 在 org.apache.derby.client.am.PreparedStatement.prepare(未知来源) 在 org.apache.derby.client.am.Connection.prepareStatementX(未知来源) ... 56 更多

现在我检查了我的 web.xml。据我所知,部署描述符是正确的。我已经检查了我的数据源,根据我的persistance.xml,它似乎是正确的,我ping了数据库池,它也成功了。我的模式名为 dbsample,并且有一个名为 books 的表。

所以我无法弄清楚为什么它对我的 DBSAMPLE 说不存在。任何帮助将不胜感激。

EDIT #1 在数据库中执行 sql 命令时它工作得很好。

【问题讨论】:

你能不能在你的数据库中执行同样的sql语句并检查你没有同样的错误 所以我在我的数据库中执行了它,它工作得很好。 那么我认为原因是数据源 jdbc/cart 连接到另一个没有此模式的数据库,您可以检查数据源的 url y databasename 属性并检查它是否指向正确的数据库。 你有想过这个吗?我想我正在运行与您相同的示例并遇到相同的问题 @peeskillet ...它通常是连接问题..不记得我是如何解决它的..但基本上它的命中和跟踪..检查连接池和资源..持久性单元等...希望会工作.. 【参考方案1】:

虽然我回答这个问题可能有点晚,但我遇到了同样的问题并解决了。

问题是我没有在persistnece.xml 中设置 JDBC 资源。我将此添加到我的persistence.xml

<jta-data-source>jdbc/resourcename</jta-data-source>

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

【讨论】:

谢谢,虽然有点晚了。我希望它可以帮助别人:)

以上是关于Netbeans 错误:架构不存在的主要内容,如果未能解决你的问题,请参考以下文章

Netbeans:包 com.mysql 不存在

用netbeans开发自由格式项目时,编译报错“程序包不存在”以及相应的“找不到符号”。

程序包java.time不存在

java.sql.SQLException:架构“ROOT”不存在

“AWS RDS 数据库错误:ER_NO_SUCH_TABLE:表不存在”-但相同的架构在本地 mysql/Nodejs 上运行良好

Postgres:当公共模式上存在表时,关系不存在错误