我正在尝试在创建新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
我正在使用以下配置:
我创建了两个简单的restful服务,并为它们添加了Swagger注释。我可以在Swagger UI中看到doc,也可以调用它们。我验证生成的JSON列表和资源,并发现它有效。但是,当我尝试在WSO2AM中导入该定义时,它无法这样做。
WSO2 AM 1.8.0支持哪种Swagger规范?
非常感谢任何帮助。感谢。
答案 0 :(得分:0)
我能够克服这个问题。文件 wso2am-1.8.0 \ repository \ deployment \ server \ jaggeryapps \ publisher \ site \ blocks \ ite m-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);