小编Dex*_*ter的帖子

Reactive Spring不支持HttpServletRequest作为REST端点中的参数?

我创建了一个如下所示的RestController:

@RestController
public class GreetingController {

    @RequestMapping(value = "/greetings", method = RequestMethod.GET)
    public Mono<Greeting> greeting(HttpServletRequest request) {

        return Mono.just(new Greeting("Hello..." + request.toString()));
    }
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,当我尝试点击"问候"端点时,我得到一个例外:

java.lang.IllegalStateException:没有类型为[org.apache.catalina.servlet4preview.http.HttpServletRequest]的参数[0]的解析器

我在用

compile('org.springframework.boot.experimental:spring-boot-starter-web-reactive')
Run Code Online (Sandbox Code Playgroud)

如何解决这个问题?

链接到完整堆栈跟踪.链接到build.gradle

- - - - - 编辑 - - - - -

使用界面.现在得到:

java.lang.IllegalStateException:方法上没有[javax.servlet.http.HttpServletRequest]类型的参数[0]的解析器(其余相同)

java spring spring-mvc spring-webflux

12
推荐指数
1
解决办法
7573
查看次数

如何正确使用Realm

我试图避免在我的Android应用程序中为每个片段创建和管理Realm对象.我认为ThreadLocalVariable可能是一个好的开始.

public class RealmInstanceGenerator extends ThreadLocal<Realm> {

    public Realm getRealmForMyThread(Context context) {

        if(get() == null && context != null)
            super.set(Realm.getInstance(context));

        return get();
    }

    public void setRealmForCurrentThread(Context context) {

        if(context != null)
            super.set(Realm.getInstance(context));
    }

    @Override
    protected Realm initialValue() {
        return null;
    }

    @Override
    public void remove() {
        if(get() != null) get().close();
        super.remove();
    }
}
Run Code Online (Sandbox Code Playgroud)

我只想在我的utils单例类中创建一个静态最终对象RealmInstanceGenerator,并在我的MainActivity中调用setRealmForCurrentThread.然后我会在活动结束时调用remove.对于任何新线程,将自动生成新的Realm对象.这是一个好策略吗?

android thread-local realm

5
推荐指数
1
解决办法
1万
查看次数

异常后自动重试功能

如果抛出一些异常,我已经让这个抽象类自动重试网络调用。

  • 我注意不要在InterruptedException& 之后重试UnknownHostException
  • 我重试了 5 次。每次失败后,我都会执行指数回退,从 300 毫秒开始到 1500 毫秒。
public abstract class AutoRetry {

  private Object dataToReturn = null;
  public Object getDataToReturn() {
    return this.dataToReturn;
  }

  public AutoRetry() {

    short retry = -1;
    while (retry++ < StaticData.NETWORK_RETRY) {

      try {
        Thread.sleep(retry * StaticData.NETWORK_CALL_WAIT);
        this.dataToReturn = doWork();
        break;
      } catch (InterruptedException | UnknownHostException e) {
        e.printStackTrace();
        this.dataToReturn = null;
        return;
      } catch (IOException e) {
        e.printStackTrace();
      }
    }
  }

  protected abstract Object doWork() throws IOException;
} …
Run Code Online (Sandbox Code Playgroud)

java android abstract-class

5
推荐指数
1
解决办法
8094
查看次数

Firehose 数据管道限制

我的用例如下:我有 JSON 数据需要以 parquet 格式存储在 S3 中。到目前为止一切顺利,我可以在 Glue 中创建一个架构并将“DataFormatConversionConfiguration”附加到我的 Firehose 流。但数据来自不同的“主题”。每个主题都有一个特定的“模式”。根据我的理解,我将必须创建多个消防流,因为一个流只能有一个模式。但我有数千个这样的主题,其中有大量高吞吐量的数据传入。创建如此多的 Firehose 资源看起来并不可行(https://docs.aws.amazon.com/firehose/latest/dev/limits.html

我应该如何构建我的管道。

bigdata amazon-web-services data-pipeline amazon-kinesis-firehose

5
推荐指数
1
解决办法
1096
查看次数