ajax - 搜索应用程序时出现 WSO2 API Manager Store 错误
问题描述
我正在使用 WSO2 API Manager 2.1.0。当我在商店中搜索应用程序时,有时会出现以下错误。一旦发生这种情况,将无法搜索任何其他应用程序,需要重新启动 API Manager 才能正常运行。
非常感谢任何解决此问题的支持步骤。
提前致谢。
PS:我还添加了后端日志。
TID: [-1234] [] [2021-06-07 14:02:26,786] ERROR {org.jaggeryjs.jaggery.core.manager.WebAppManager} - org.mozilla.javascript.EcmaError: TypeError: Cannot read property "length" from null (/store/site/blocks/application/application-list/ajax/application-list.jag#98) {org.jaggeryjs.jaggery.core.manager.WebAppManager}
org.jaggeryjs.scriptengine.exceptions.ScriptException: org.mozilla.javascript.EcmaError: TypeError: Cannot read property "length" from null (/store/site/blocks/application/application-list/ajax/application-list.jag#98)
at org.jaggeryjs.scriptengine.engine.RhinoEngine.execScript(RhinoEngine.java:571)
at org.jaggeryjs.scriptengine.engine.RhinoEngine.exec(RhinoEngine.java:273)
at org.jaggeryjs.jaggery.core.manager.WebAppManager.exec(WebAppManager.java:588)
at org.jaggeryjs.jaggery.core.manager.WebAppManager.execute(WebAppManager.java:508)
at org.jaggeryjs.jaggery.core.JaggeryServlet.doGet(JaggeryServlet.java:24)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:624)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:747)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:485)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:377)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:337)
at org.jaggeryjs.jaggery.core.JaggeryFilter.doFilter(JaggeryFilter.java:21)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.wso2.carbon.ui.filters.cache.ContentTypeBasedCachePreventionFilter.doFilter(ContentTypeBasedCachePreventionFilter.java:53)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.catalina.filters.HttpHeaderSecurityFilter.doFilter(HttpHeaderSecurityFilter.java:120)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:218)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
at org.wso2.carbon.tomcat.ext.valves.CompositeValve.continueInvocation(CompositeValve.java:99)
at org.wso2.carbon.tomcat.ext.valves.CarbonTomcatValve$1.invoke(CarbonTomcatValve.java:47)
at org.wso2.carbon.webapp.mgt.TenantLazyLoaderValve.invoke(TenantLazyLoaderValve.java:57)
at org.wso2.carbon.event.receiver.core.internal.tenantmgt.TenantLazyLoaderValve.invoke(TenantLazyLoaderValve.java:48)
at org.wso2.carbon.tomcat.ext.valves.TomcatValveContainer.invokeValves(TomcatValveContainer.java:47)
at org.wso2.carbon.tomcat.ext.valves.CompositeValve.invoke(CompositeValve.java:62)
at org.wso2.carbon.tomcat.ext.valves.CarbonStuckThreadDetectionValve.invoke(CarbonStuckThreadDetectionValve.java:159)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:958)
at org.wso2.carbon.tomcat.ext.valves.CarbonContextCreatorValve.invoke(CarbonContextCreatorValve.java:57)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:452)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1087)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:637)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1756)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1715)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)
Caused by: org.mozilla.javascript.EcmaError: TypeError: Cannot read property "length" from null (/store/site/blocks/application/application-list/ajax/application-list.jag#98)
at org.mozilla.javascript.ScriptRuntime.constructError(ScriptRuntime.java:3687)
at org.mozilla.javascript.ScriptRuntime.constructError(ScriptRuntime.java:3665)
at org.mozilla.javascript.ScriptRuntime.typeError(ScriptRuntime.java:3693)
at org.mozilla.javascript.ScriptRuntime.typeError2(ScriptRuntime.java:3712)
at org.mozilla.javascript.ScriptRuntime.undefReadError(ScriptRuntime.java:3725)
at org.mozilla.javascript.ScriptRuntime.getObjectProp(ScriptRuntime.java:1483)
at org.jaggeryjs.rhino.store.site.blocks.application.application_list.ajax.c0._c_anonymous_1(/store/site/blocks/application/application-list/ajax/application-list.jag:98)
at org.jaggeryjs.rhino.store.site.blocks.application.application_list.ajax.c0.call(/store/site/blocks/application/application-list/ajax/application-list.jag)
at org.mozilla.javascript.optimizer.OptRuntime.call0(OptRuntime.java:23)
at org.jaggeryjs.rhino.store.site.blocks.application.application_list.ajax.c0._c_script_0(/store/site/blocks/application/application-list/ajax/application-list.jag:4)
at org.jaggeryjs.rhino.store.site.blocks.application.application_list.ajax.c0.call(/store/site/blocks/application/application-list/ajax/application-list.jag)
at org.mozilla.javascript.ContextFactory.doTopCall(ContextFactory.java:394)
at org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:3091)
at org.jaggeryjs.rhino.store.site.blocks.application.application_list.ajax.c0.call(/store/site/blocks/application/application-list/ajax/application-list.jag)
at org.jaggeryjs.rhino.store.site.blocks.application.application_list.ajax.c0.exec(/store/site/blocks/application/application-list/ajax/application-list.jag)
at org.jaggeryjs.scriptengine.engine.RhinoEngine.execScript(RhinoEngine.java:567)
... 45 more
解决方案
如果在 API 管理器中找不到特定于应用程序的条目,或者在尝试检索应用程序信息时网络调用中存在任何问题,则上述 Ajax 错误是一般错误。
为了进一步调查,
- 您可以在浏览器中打开开发者控制台并在操作过程中检查网络。检查与检索( )相关的操作(网络调用)
https://<hostname>:<port>/store/site/blocks/application/application-list/ajax/application-list.jag
是否有问题,如果在您的环境中配置了 LB 和 Proxy 配置,请务必检查。 - 验证错误是仅填充到一组应用程序还是随机填充到所有应用程序。如果这只发生在一组应用程序中,则存储在数据库中的数据可能会出现问题。相应的应用程序输入了部分数据,或者应用程序订阅的 API 有部分数据
关注 URL 配置和 LB 配置,因为它可能是问题的更普遍原因。
推荐阅读
- python - 打印语句无法在嵌套循环/函数内的终端上输出
- sql - 使用 graphql 模式将数据透视到 dgraph 的多对多
- python - 获取文件树结构中的多个*.plist信息
- xml - 使用 mule 4.3 内核 (CE) 将 xml 转换为 java 对象
- html - 我正在尝试使用 flexbox 和媒体查询来实现引导网格。在 wrap 元素获得额外的间距。我怎样才能删除它?
- ios - Kotlin Multiplatform Mobile 不支持 i386 架构
- python - 如何使容器的 Azure 应用服务“使用”.env 变量?
- python - 将网页中的表值附加到 csv
- c++ - QMetaType 混淆了名称相同但命名空间不同的两个符号
- reactjs - 修改可以调用方法的变量/对象