Web服务重试Java

Web服务重试Java,java,web,Java,Web,我有一个Java web应用程序a,它将Pojo发送到另一个web应用程序B。我想创建一种机制,在B关闭时重试将Pojo从a发送到B。在A中配置B的api的方式是通过Spring,在A的类路径中配置B的JAR。我尝试了一下,但重试无效。有人能告诉我我走的方向是否正确吗 这里的错误是,我的代码首先执行,然后正确地抛出异常。在catch块中捕获异常。catch块重新调用callB(),它正确地再次抛出异常,但重试代码进入非源文件异常处理代码并停止 编辑:我不能使用jcabi方面,因为Gradle不支

我有一个Java web应用程序a,它将Pojo发送到另一个web应用程序B。我想创建一种机制,在B关闭时重试将Pojo从a发送到B。在A中配置B的api的方式是通过Spring,在A的类路径中配置B的JAR。我尝试了一下,但重试无效。有人能告诉我我走的方向是否正确吗

这里的错误是,我的代码首先执行,然后正确地抛出异常。在catch块中捕获异常。catch块重新调用callB(),它正确地再次抛出异常,但重试代码进入非源文件异常处理代码并停止

编辑:我不能使用jcabi方面,因为Gradle不支持它

public Object getB(Object request){

    if (bClient != null) {
      int retryCount = 0;
      try {
        return callB(request);
      } catch (Exception e) {

        if (++retryCount > 3) {
           return null;
        }
        return callB(request);
      }
    }

    return null;
  }

      private Object callB(Object request){
        return bClient.callServiceB(request);
      }

当您希望代码重复执行某件事情,直到成功为止,请考虑将控制逻辑写入循环。您会发现,这样可以很容易地更改代码放弃前的重试次数。

“不工作”不是有效的问题描述。发布实际详细信息。我没有看到任何与WS-programming相关的代码。可能与@robermann重复-是的,我正在并行尝试该方法。我不知道如何在Gradle中添加jcabi方面插件-有什么想法吗?Maven:com.jcabi-jcabi-Maven插件0.9.2 ajc中有它