WSO2 API 经理:PizzaShackAPI

WSO2 API Manager: PizzaShackAPI

我已经在 WSO2 API 管理器中部署了 PizzaShackAPI 示例。当我尝试通过商店调用它时,API 管理器命令提示符出现错误:

命令提示符错误:

ERROR - SourceHandler I/O error: Unrecognized SSL message, plaintext connection?
javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection?
    at sun.security.ssl.EngineInputRecord.bytesInCompletePacket(EngineInputRecord.java:156)
    at sun.security.ssl.SSLEngineImpl.readNetRecord(SSLEngineImpl.java:868)
    at sun.security.ssl.SSLEngineImpl.unwrap(SSLEngineImpl.java:781)
    at javax.net.ssl.SSLEngine.unwrap(SSLEngine.java:624)
    at org.apache.http.nio.reactor.ssl.SSLIOSession.doUnwrap(SSLIOSession.java:245)
    at org.apache.http.nio.reactor.ssl.SSLIOSession.doHandshake(SSLIOSession.java:280)
    at org.apache.http.nio.reactor.ssl.SSLIOSession.isAppInputReady(SSLIOSession.java:410)
    at org.apache.http.impl.nio.reactor.AbstractIODispatch.inputReady(AbstractIODispatch.java:119)
    at org.apache.http.impl.nio.reactor.BaseIOReactor.readable(BaseIOReactor.java:159)
    at org.apache.http.impl.nio.reactor.AbstractIOReactor.processEvent(AbstractIOReactor.java:338)
    at org.apache.http.impl.nio.reactor.AbstractIOReactor.processEvents(AbstractIOReactor.java:316)
    at org.apache.http.impl.nio.reactor.AbstractIOReactor.execute(AbstractIOReactor.java:277)
    at org.apache.http.impl.nio.reactor.BaseIOReactor.execute(BaseIOReactor.java:105)
    at org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor$Worker.run(AbstractMultiworkerIOReactor.java:586)
    at java.lang.Thread.run(Thread.java:745)

API 存储错误:

{
  "error": "no response from server"
}

我的配置:

JDK - 1.8,WSO - 2.0

有人可以帮忙并提供一些指导吗?

您的要求URL是错误的。应该是

https://localhost:8243/pizzashack/1.0.0/menu

您似乎错误地更改了 api-manager.xml 的以下部分。

<GatewayEndpoint>http://${carbon.local.ip}:${http.nio.port},https://${carbon.local.ip}:${https.nio.port}</GatewayEndpoint>

您使用了错误的端口,您必须使用以下任一具有相关协议的端口。

要通过 HTTPS 访问 API,请使用以下内容

https://localhost:8243/pizzashack/1.0.0/menu

要通过 HTTP 访问 API,请使用以下内容

http://localhost:8280/pizzashack/1.0.0/menu

尝试从您的终端执行以下 curl 命令。这应该会向您发送正确的回复

curl -X GET --header 'Accept: application/json' --header 'Authorization: Bearer <Key>' 'https://localhost:8243/pizzashack/1.0.0/menu'

如其他答案中所述,网关端点在您的配置中指向了错误的 url。这在新包装中非常有效。

编辑

为了解决证书问题,请在命令后附加'-k'。

curl -X GET --header 'Accept: application/json' --header 'Authorization: Bearer <Key>' 'https://localhost:8243/pizzashack/1.0.0/menu -k'