主题 : jeecms-2012-sp1版本,后台备份功能页面报错
级别: 秀才
UID: 4519
积分:61 加为好友
威望: 0 精华: 0
主题:4 回复:39
注册时间:2010-03-16
在线时长:0
1#   发表于:2012-10-27 23:46:46  IP:114.47.*.*
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown table 'table_names' in information_schema
sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
java.lang.reflect.Constructor.newInstance(Constructor.java:513)
com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
com.mysql.jdbc.Util.getInstance(Util.java:381)
com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1030)
com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)
com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3536)
com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3468)
com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1957)
com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2107)
com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2642)
com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2571)
com.mysql.jdbc.StatementImpl.executeQuery(StatementImpl.java:1451)
com.mysql.jdbc.Field.getCollation(Field.java:475)
com.mysql.jdbc.ResultSetMetaData.isCaseSensitive(ResultSetMetaData.java:561)
com.sun.rowset.CachedRowSetImpl.initMetaData(CachedRowSetImpl.java:704)
com.sun.rowset.CachedRowSetImpl.populate(CachedRowSetImpl.java:621)
org.springframework.jdbc.core.SqlRowSetResultSetExtractor.createSqlRowSet(SqlRowSetResultSetExtractor.java:63)
org.springframework.jdbc.core.SqlRowSetResultSetExtractor.extractData(SqlRowSetResultSetExtractor.java:46)
org.springframework.jdbc.core.SqlRowSetResultSetExtractor.extractData(SqlRowSetResultSetExtractor.java:1)
org.springframework.jdbc.core.JdbcTemplate$1QueryStatementCallback.doInStatement(JdbcTemplate.java:445)
org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:395)
org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:455)
org.springframework.jdbc.core.JdbcTemplate.queryForRowSet(JdbcTemplate.java:498)
com.jeecms.cms.dao.assist.impl.CmsDataBackDaoImpl.listTables(CmsDataBackDaoImpl.java:69)
com.jeecms.cms.manager.assist.impl.CmsDataBackMngImpl.listTabels(CmsDataBackMngImpl.java:35)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:597)
org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:309)
org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:110)
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
$Proxy62.listTabels(Unknown Source)
com.jeecms.cms.action.admin.assist.DataAct.list(DataAct.java:72)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:597)
org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:176)
org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:426)
org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:414)
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:790)
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719)
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644)
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:549)
javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
com.jeecms.common.web.ProcessTimeFilter.doFilter(ProcessTimeFilter.java:38)
级别: 秀才
UID: 4519
积分:61 加为好友
威望: 0 精华: 0
主题:4 回复:39
注册时间:2010-03-16
在线时长:0
2#   发表于:2012-10-28 13:25:42  IP:114.47.*.*
问题已解决,原因是mysql的版本要5.0才可以,原来用*版本,就报错了。
级别: 童生
UID: 40894
积分:35 加为好友
威望: 0 精华: 0
主题:1 回复:16
注册时间:2012-11-15
在线时长:0
3#   发表于:2012-11-16 11:45:10  IP:124.118.*.*
*都出来多久了~。。。这套系统众多bug~
级别: 状元
UID: 33380
积分:50625 加为好友
威望: 21 精华: 3
主题:88 回复:30687
注册时间:2012-05-07
在线时长:0
4#   发表于:2012-11-16 13:19:29  IP:111.83.*.*
我们这用的就是*,不可能是数据库问题,我们这备份也没问题的
功成由勤,业精于勤。
级别: 举人
UID: 1323
积分:155 加为好友
威望: 0 精华: 0
主题:4 回复:113
注册时间:2009-12-09
在线时长:0
5#   发表于:2012-11-30 23:57:23  IP:119.131.*.*
我的也是出现同样的错误。
级别: 童生
UID: 24175
积分:37 加为好友
威望: 0 精华: 0
主题:0 回复:32
注册时间:2011-10-05
在线时长:0
6#   发表于:2012-12-06 18:58:21  IP:61.136.*.*
我换了个5.0的数据库的确就解决了,可能是表类型的问题
级别: 状元
UID: 33380
积分:50625 加为好友
威望: 21 精华: 3
主题:88 回复:30687
注册时间:2012-05-07
在线时长:0
7#   发表于:2012-12-07 08:49:41  IP:59.139.*.*
功成由勤,业精于勤。
级别: 白丁
UID: 40163
积分:8 加为好友
威望: 0 精华: 0
主题:0 回复:11
注册时间:2012-10-27
在线时长:0
8#   发表于:2013-01-23 18:33:13  IP:202.85.*.*
我的也有问题。
级别: 童生
UID: 47167
积分:22 加为好友
威望: 0 精华: 0
主题:0 回复:14
注册时间:2013-05-05
在线时长:0
9#   发表于:2013-05-20 14:50:04  IP:218.76.*.*
确实有这个问题!
exception 

org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.springframework.jdbc.BadSqlGrammarException: StatementCallback; bad SQL grammar [ show tables ]; nested exception is com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown table 'table_names' in information_schema
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:656)
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:549)
javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
com.jeecms.common.web.ProcessTimeFilter.doFilter(ProcessTimeFilter.java:38)

root cause 

org.springframework.jdbc.BadSqlGrammarException: StatementCallback; bad SQL grammar [ show tables ]; nested exception is com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown table 'table_names' in information_schema
org.springframework.jdbc.support.SQLExceptionSubclassTranslator.doTranslate(SQLExceptionSubclassTranslator.java:94)
org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:72)
org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:80)
org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:406)


mysql环境:

mysql-*.23-win32
级别: 状元
UID: 33380
积分:50625 加为好友
威望: 21 精华: 3
主题:88 回复:30687
注册时间:2012-05-07
在线时长:0
10#   发表于:2013-05-20 15:08:21  IP:111.206.*.*
建议修改方法为 
com.jeecms.cms.dao.assist.impl.CmsDataBackDaoImpl.listTables(String catalog) 
加上catalog参数,sql语句改为 
String sql = " SELECT TABLE_NAME FROM information_schema.`TABLES` WHERE TABLE_SCHEMA='" + catalog + "' "; 

该方法会经过一系列的接口/实现,修正那些相关的接口和实现,最终在 
com.jeecms.cms.action.admin.assist.DataAct.list(ModelMap model, HttpServletRequest request, HttpServletResponse response) 
中调用,其中catalog参数可以使用 
dataBackMng.getDefaultCatalog()来提供,注意try/catch哦。 

修改后的list方法 
@RequestMapping("/data/v_list.do") 
public String list(ModelMap model, HttpServletRequest request, HttpServletResponse response) { 
List<String> tables; 
try { 
tables = dataBackMng.listTabels(dataBackMng.getDefaultCatalog()); 
} catch (SQLException e) { 
model.addAttribute("msg", e.toString()); 
return "common/error_message"; 

model.addAttribute("tables", tables); 
return "data/list"; 
功成由勤,业精于勤。
1 2 > >| 共2页