0

我已经开始使用 Vaadin 进行测试,以考虑作为现有系统的替代技术。作为测试,我尝试连接到现有数据库,并且对于某些表,它可以正常工作。问题是对于其他一些表,在这种情况下是最重要的一个,它会阻塞数据库的某些行。问题是,我如何 a) 根据给出的错误消息识别问题行,或者 b) 找到一种方法让系统识别问题行并在不完全崩溃的情况下移动它?

这是此处的错误消息(请注意,未找到 CPI 条目实际上是表中的一个值,因此不是错误的原因):

java.sql.SQLException: Value '5952182111120050000000û0100100000ûRoad - Base
Brush RoadDouglas Line - Hubbard Line101.000ûû002012-05-21 22:16:59
2012-05-21support300ûû3688.47014531.53
0000-00-0003
2013-12-3117CPI Entry Not Found1
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1078)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:989)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:975)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:920)
at com.mysql.jdbc.ResultSetRow.getDateFast(ResultSetRow.java:141)
at com.mysql.jdbc.BufferRow.getDateFast(BufferRow.java:707)
at com.mysql.jdbc.ResultSetImpl.getDate(ResultSetImpl.java:2211)
at com.mysql.jdbc.ResultSetImpl.getDate(ResultSetImpl.java:2173)
at com.mysql.jdbc.ResultSetImpl.getObject(ResultSetImpl.java:5052)
at com.vaadin.data.util.sqlcontainer.SQLContainer.getPropertyIds(SQLContainer.java:1168)
at com.vaadin.data.util.sqlcontainer.SQLContainer.<init>(SQLContainer.java:131)
at com.example.testproject.DBTest.init(DBTest.java:36)
at com.vaadin.ui.UI.doInit(UI.java:529)
at com.vaadin.server.AbstractCommunicationManager.getBrowserDetailsUI(AbstractCommunicationManager.java:2468)
at com.vaadin.server.AbstractCommunicationManager.handleBrowserDetailsRequest(AbstractCommunicationManager.java:2362)
at com.vaadin.server.VaadinServlet.service(VaadinServlet.java:325)
at com.vaadin.server.VaadinServlet.service(VaadinServlet.java:201)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1002)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:585)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)

这是相关代码,错误在第二行抛出:

TableQuery tq = new TableQuery("v3_audits", pool);
SQLContainer container = new SQLContainer(tq);

编辑:根据安德烈的建议,我查看了数据库。指示的行是表格的第一行;删除它然后在第二行引发错误。这向我表明,正如他所说,数据库本身存在 JDBC 问题——尽管现在很难猜测这个问题是什么。

4

0 回答 0