WSO2-APIM(v1.9.1)从Docker运行,不能使用swagger URL创build一个新的API

我创build了一个基于centos:6.6,oracle java 7.79和wso2-apim v1.9.1的Docker镜像。 它也暴露港口9763 9443 8280 8243。

我也尝试在Docker Hub中使用Docker镜像,并得到相同的结果错误。

我可以在没有问题的情况下启动一个新的容器,但是当在https://:9443 / publisher中以“admin”身份login时,我无法使用swagger URL创build新的API。 我使用的swagger URL是http://petstore.swagger.io/v2/swagger.json

我也尝试使用一个简单的hello world REST和swagger2,它存在于我的本地机器(http:// localhost:8080 / v2 / api-docs)中,我得到了同样的错误。

我得到一个连接拒绝错误?

[2015-11-11 11:55:49,571] ERROR - XMLHttpRequestHostObject Connection refused java.net.ConnectException: Connection refused ... Org.jaggeryjs.rhino.publisher.site.blocks.item_design.ajax.c0.call(/publisher/site/blocks/item-design/ajax/add.jag) ... org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) ... [2015-11-11 11:55:49,579] ERROR - WebAppManager org.mozilla.javascript.WrappedException: Wrapped org.jaggeryjs.scriptengine.exceptions.ScriptException: java.net.ConnectException: Connection refused (http#220) org.jaggeryjs.scriptengine.exceptions.ScriptException: org.mozilla.javascript.WrappedException: Wrapped org.jaggeryjs.scriptengine.exceptions.ScriptException: java.net.ConnectException: Connection refused (http#220) 

使用wso2-apim二进制文件不会给出这个错误。 所以它必须是docker设置或分布错误的东西?

这可能是一个networking问题。 以上Swagger端点可能对容器不可见。 尝试使用以下命令login容器,并使用curlvalidation端点的可见性:

 docker exec -it <container-id> /bin/bash curl http://petstore.swagger.io/v2/swagger.json 

如果端点不可见,请参考下面的StackOverflow问题来解决networking问题:

https://stackoverflow.com/questions//my-docker-container-has-no-internet

关于本地机器托pipe的Swagger端点,取决于您如何运行Docker,可能无法使用localhost访问容器。 您可能需要使用本地机器的IP地址。