我正在尝试在创建新API时在WSO2 AM 1.8.0中导入Swagger定义 . 但是,导入失败,日志中的例外如下,
ERROR {JAGGERY.site.blocks.item-design.ajax.import:jag} - org.mozilla.javascript.WrappedException: Wrapped com.google.gson.JsonSyntaxException: com.google.gson.stream.MalformedJsonException: Expected EOF at line 1 column 27 (/publisher/site/blocks/item-design/ajax/import.jag#25)
Caused by: com.google.gson.JsonSyntaxException: com.google.gson.stream.MalformedJsonException: Expected EOF at line 1 column 27
Caused by: com.google.gson.stream.MalformedJsonException: Expected EOF at line 1 column 27
我正在使用以下配置:
-
Swagger-core_2.11-1.3.12
-
Swagger-jersey2-jaxrs_2.11-1.3.12
-
Swagger-annotations-1.3.12
-
Tomcat 7
-
JDK 1.7
-
WSO2 API Manager 1.8.0
我创建了两个简单的restful服务,并为它们添加了Swagger注释 . 我可以在Swagger UI中看到doc,也可以调用它们 . 我验证生成的JSON列表和资源,并发现它有效 . 但是,当我尝试在WSO2AM中导入该定义时,它无法这样做 .
WSO2 AM 1.8.0支持哪种Swagger规范?
任何帮助都非常感谢 . 谢谢 .
1 回答
我能够克服这个问题 . 文件 wso2am-1.8.0\repository\deployment\server\jaggeryapps\publisher\site\blocks\item-design\ajax\import.jag 具有发送http请求并在循环中获取json数据的代码 .
var xhr = new XMLHttpRequest(); for(var i = 0; i < swaggerJson.apis.length; i++){ xhr.open("GET", url + swaggerJson.apis[i].path);
由于某种原因,它无法重用XMLHttpRequest实例来发送后续请求 . 我在for循环中移动了XMLHttpRequest实例创建语句,并且它工作正常 .
//var xhr = new XMLHttpRequest(); for(var i = 0; i < swaggerJson.apis.length; i++){ var xhr = new XMLHttpRequest(); // moved instance creation here xhr.open("GET", url + swaggerJson.apis[i].path);