我们最近将单实例API管理器从1.90升级到1.10。升级似乎是大多是成功的,但任何时候我尝试加载的服务之一的出版商,它冻结了和日志报告:WSO2 API管理员升级后错误
Error while retrieving the lifecycle actions for lifecycle: APILifeCycle in lifecycle state: null
at org.wso2.carbon.governance.api.common.dataobjects.GovernanceArtifactImpl.getAllLifecycleActions(GovernanceArtifactImpl.java:783)
at org.wso2.carbon.apimgt.impl.APIProviderImpl.getAPILifeCycleData(APIProviderImpl.java:3306)
... 101 more
Caused by: org.wso2.carbon.registry.core.exceptions.RegistryException: Resource at '/_system/governance/apimgt/applicationdata/provider/<User>/<API>/v1/api' not associated with aspect 'APILifeCycle'
at org.wso2.carbon.registry.core.jdbc.EmbeddedRegistry.getResourceAspect(EmbeddedRegistry.java:2592)
at org.wso2.carbon.registry.core.jdbc.EmbeddedRegistry.getAspectActions(EmbeddedRegistry.java:2627)
at org.wso2.carbon.registry.core.caching.CacheBackedRegistry.getAspectActions(CacheBackedRegistry.java:474)
at org.wso2.carbon.registry.core.session.UserRegistry.getAspectActionsInternal
也(我代替敏感信息与<>):
org.wso2.carbon.registry.core.exceptions.RegistryException: Resource at '/_system/governance/apimgt/applicationdata/provider/<USER>/<SERVICE>/v1/api' not associated with aspect 'APILifeCycle'
at org.wso2.carbon.registry.core.jdbc.EmbeddedRegistry.getResourceAspect(EmbeddedRegistry.java:2592)
at org.wso2.carbon.registry.core.jdbc.EmbeddedRegistry.getAspectActions(EmbeddedRegistry.java:2627)
at org.wso2.carbon.registry.core.caching.CacheBackedRegistry.getAspectActions(CacheBackedRegistry.java:474)
我花了大量的时间试图找到这个错误发生的代码,没有运气(我不是一个Java开发人员)。你们有什么想法是什么导致这个错误?所有注册的服务都是在升级前注册的。
更新: 如下所示,这是因为迁移失败。我深入研究了一下,发现由于SQL不好导致迁移失败。在迁移的客户,特别是文件MigrateFrom19To110.java,189线正在执行一个特设的SQL语句:
"UPDATE IDN_OAUTH2_ACCESS_TOKEN SET AUTHZ_USER = ? WHERE AUTHZ_USER = ?"
这将引发此错误:
Must declare the scalar variable "@P0WHERE"
好像有什么不对与构建此语句的代码相关,因为@POWHERE似乎来自jdbc驱动程序代码。任何人都可以对此有更多的了解吗?
是的,我按照建议运行客户端,通过跟随该文档到T - 在SQL中有很多SQL错误必须修复的迁移脚本(例如,删除或更改仍然具有索引的列)。但是,一旦我手动删除了这些限制条件,迁移脚本和迁移客户端就不会再发生任何错误。有没有办法解决这个问题,因为我已经这样做了?或者我需要将所有东西都回滚并重新开始? – TheNerd