部署CApp至Service Catalog时遭遇格式错误JSON异常
问题分析与解决方案
问题描述
使用VS Code MI扩展、Integration Studio(均为4.3.0版本)向4.0.0版本的远程WSO2 Micro Integrator服务器的Service Catalog部署服务时,触发以下JSON解析异常:
INFO {ServiceCatalogDeployer} - Executing Service Catalog deployer for CApp : hello_1.0.0.car Exception in thread "pool-16-thread-2" com.google.gson.JsonSyntaxException: com.google.gson.stream.MalformedJsonException: Use JsonReader.setLenient(true) to accept malformed JSON at line 1 column 22 path $ at com.google.gson.JsonParser.parseReader(JsonParser.java:76) at com.google.gson.JsonParser.parseString(JsonParser.java:51) at com.google.gson.JsonParser.parse(JsonParser.java:115) at org.wso2.micro.integrator.initializer.utils.ServiceCatalogUtils.getAllServices(ServiceCatalogUtils.java:314) at org.wso2.micro.integrator.initializer.serviceCatalog.ServiceCatalogDeployer.run(ServiceCatalogDeployer.java:61) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) at java.base/java.lang.Thread.run(Thread.java:1623) Caused by: com.google.gson.stream.MalformedJsonException: Use JsonReader.setLenient(true) to accept malformed JSON at line 1 column 22 path $ at com.google.gson.stream.JsonReader.syntaxError(JsonReader.java:1659) at com.google.gson.stream.JsonReader.checkLenient(JsonReader.java:1465) at com.google.gson.stream.JsonReader.doPeek(JsonReader.java:551) at com.google.gson.stream.JsonReader.peek(JsonReader.java:433) at com.google.gson.JsonParser.parseReader(JsonParser.java:71)
核心原因
你的猜测完全正确:版本差异是导致异常的直接原因。WSO2 MI的Service Catalog功能在4.0.0到4.3.0版本间存在显著的API和数据格式迭代,4.3.0版本的工具生成的Service Catalog元数据JSON结构、字段定义与4.0.0版本服务器的解析逻辑不兼容,触发了JSON格式解析错误。
解决方案
- 降级本地工具版本:将VS Code MI扩展、Integration Studio、本地MI服务器统一降级到4.0.0版本,确保与远程服务器版本完全一致,这是最可靠的兼容方案,能直接消除格式不匹配问题。
- 手动调整CAR包元数据(仅临时应急):若无法降级,可解压CAR包,找到Service Catalog相关的JSON配置文件(通常命名为
service-catalog.json或类似),对照4.0.0版本的规范调整JSON结构和字段后重新打包部署,但该方法操作繁琐,容易引入新问题。 - 升级远程服务器(若有权限):将远程MI服务器升级到4.3.0版本,统一全链路版本,既解决当前兼容问题,还能使用新版本的功能优化。
内容的提问来源于stack exchange,提问作者ido omer
相关产品推荐
相关产品推荐

