wso2 esb“;未找到api“;当车辆与其他车辆一起部署在隔板上时

wso2 esb“;未找到api“;当车辆与其他车辆一起部署在隔板上时,wso2,wso2esb,Wso2,Wso2esb,我们在WSO2 ESB上有一组REST API。如果我们的.car是唯一部署的,那么我们的API响应与预期一致。但是,我们与多个团队共享一个分区。当我们将.car文件与其他.car文件一起部署时,无论是在本地还是在云上,我们的API似乎都没有得到部署。对它们的任何调用都会抛出“未找到API”404 两天来,我们一直在关注这个问题,但到目前为止还没有定论。在发布此问题之前,我们尝试了什么: 检查Jenkins日志以确保构建正常进行 检查Splunk中的服务器日志以确保部署成功 仔细检查以确保端点正

我们在WSO2 ESB上有一组REST API。如果我们的.car是唯一部署的,那么我们的API响应与预期一致。但是,我们与多个团队共享一个分区。当我们将.car文件与其他.car文件一起部署时,无论是在本地还是在云上,我们的API似乎都没有得到部署。对它们的任何调用都会抛出“未找到API”404

两天来,我们一直在关注这个问题,但到目前为止还没有定论。在发布此问题之前,我们尝试了什么:

  • 检查Jenkins日志以确保构建正常进行
  • 检查Splunk中的服务器日志以确保部署成功
  • 仔细检查以确保端点正确
  • 确保URL中没有输入错误
  • 从工件xml文件中删除注释
  • 执行了干净的构建和安装,以防万一
  • 从分区下载所有的.car文件,并将它们装载到开发人员的机器上,然后在本地主机上运行它们。只要所有的.car文件都在那里,我们就能够重现这个问题,但是当我们单独运行.car时,问题就消失了,API工作得很好
    还有谁见过这个吗?如果是,决议是什么

    我们了解到WSO2 ESB中有一个怪癖,如下所示:

    如果另一个Synapse API配置文件的上下文与您的Synapse API配置上下文的一部分相匹配,那么WSO2 ESB可能找不到您的API。这种行为似乎不一致,但确实发生了

    例如,假设这两个Synapse API上下文都存在于同一分区上:

    <api xmlns="http://ws.apache.org/ns/synapse" name="API_THEIRS" context="/foo/bar/">
    
    <api xmlns="http://ws.apache.org/ns/synapse" name="API_MINE" context="/foo/bar/bat">
    
    
    
    在这种情况下,ESB可能永远找不到API_MINE中定义的API,因为当“/foo/bar/{anything}”的请求传入时,它将在API_MINE中查找匹配的资源。如果资源不在那里,ESB将抛出“API未找到”错误

    这就是发生在我们身上的事情。另一个团队有一个上下文路径,与我们路径中的前几个步骤相匹配,因此ESB在其中查找我们的资源