首先,在我通过Eclipse更新了Cloud SQL Admin API之后,我注意到我的一些类坏了。显然API已经改变了。
具体而言,ExportContext中的方法发生了变化;setDatabase()已不存在,已被setDatabases()替换,而setTable()已被setSqlExportOptions()替换。
但是,问题是,在将我的代码更新到新的API之后,它将不会运行。
新代码:
ExportContext exportContext = new ExportContext()
.setFileType("SQL")
.setDatabases( Arrays.asList(srcDatabase) )
.setSqlExportOptions( new SqlExportOptions().setTables( new ArrayList<String>(tableNames) ) )
.setUri(dumpUri);
这里有一个例外:
(com.google.api.services.sqladmin.model.ExportContext.setFileType(Ljava/lang/String;)Lcom/google/api/services/sqladmin/model/ExportContext;)
java.lang.NoSuchMethodError: com.google.api.services.sqladmin.model.ExportContext.setFileType(Ljava/lang/String;)Lcom/google/api/services/sqladmin/model/ExportContext;
我该怎么解决这个问题?
云SQL管理API的新版本v1beta4
最近发布,其中包括一些更改,如您所说的更改。例如,需要设置setSqlExportOptions
以导出SQL
格式的数据。
旧版本v1beta3
仍然可用。我的猜测是,您从未指定API版本,eclipse自动生成最新版本的客户端代码。请确保指定要使用的版本。