2
votes

In WSO2 API Manager, I want to use an WSO2 ESB instance in local to publish API. I mean, I configure in /repository/conf/api-manager.xml an ESB instance like Gateway, like this:

<APIGateway>
<Environments>
    <Environment type="hybrid" api-console="true">
        <Name>Production and Sandbox</Name>
        <Description> Description of environment</Description>

        <!--ServerURL>https://${carbon.local.ip}:${mgt.transport.https.port}${carbon.context}/services/</ServerURL-->
        <ServerURL>https://localhost:8243/services/</ServerURL>

        <!--Username>${admin.username}</Username-->
        <Username>admin</Username>

        <!--Password>${admin.password}</Password-->
        <Password>admin</Password>

        <!--GatewayEndpoint>http://${carbon.local.ip}:${http.nio.port},https://${carbon.local.ip}:${https.nio.port}</GatewayEndpoint-->
        <GatewayEndpoint>http://localhost:8280,https://localhost:8243</GatewayEndpoint>
    </Environment>
</Environments>
<EnableGatewayKeyCache>true</EnableGatewayKeyCache>
<EnableGatewayResourceCache>true</EnableGatewayResourceCache>
<ClientDomainHeader>referer</ClientDomainHeader>
</APIGateway>

I followed this article https://docs.wso2.com/display/AM190/Publish+through+Multiple+API+Gateways and I just changed the configuration according to my ESB instance.

The problem is in API publisher, when I want to publish a new API I get follow error:

Failed to change the life cycle status : Invoking lifecycle action "Publish" failed

NOTE: I changed port of serviceURL from 9443 to 8243 because I couldn't show service list of ESB in my browser, and with 8243 I can see it.

1

1 Answers

0
votes

Have you done a feature installation on ESB ?

By default WSO2 ESB does not contain certain features that are required for it to serve as the gateway in this scenario. It is not possible to use ESB here, without a feature installation.

Therefore we recommend you to use an instance of WSO2 API Manager itself as the gateway.

The HTTPS servlet transport port of the Gateway needs to be given as the gateway's <serverURL>.