我正在尝试获得一个嵌入式 SQS 模拟,用于对 Java SQS 客户端进行一些自包含的本地测试。
ElasticMQ 听起来应该按照我的要求去做,但是这些说明似乎假设我使用的是 Java,而且我不知道如何从 Java 中启动 ElasticMQ 的其余服务器。
我已经尝试过我认为是 https://github.com/adamw/elasticmq#starting-an-embedded-elasticmq-server-with-an-sqs-interface 提供的代码的Java等价物:
RestServer server = new SQSRestServerBuilder().start()
但是 SQSRestServerBuilder() 需要一个
Client
参数,我不知道在那里放什么。有没有其他人让 ElasticMQ 在 Java 内存中运行?
最佳答案
最新版本的 SQSRestServerBuilder
似乎不需要 Client
参数。您使用的是旧版本的 ElasticMQ 吗?
见 https://github.com/adamw/elasticmq/blob/master/rest/rest-sqs/src/main/scala/org/elasticmq/rest/sqs/SQSRestServerBuilder.scala
如果您使用的是旧版本,则可以通过执行以下操作来创建内存中 SQS 服务器:
import org.elasticmq.Node
import org.elasticmq.NodeBuilder
import org.elasticmq.rest.RestServer
import org.elasticmq.rest.sqs.SQSRestServerBuilder
import org.elasticmq.storage.inmemory.InMemoryStorage
...
Node node = NodeBuilder.withStorage(new InMemoryStorage())
RestServer sqsServer = new SQSRestServerBuilder(node.nativeClient()).start()
上面的代码是 ElasticMQ 0.6.3 的一个具体例子,它依赖于 Scala 2.10。
关于java - 在 Java 中运行内存中的 elasticMQ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32108909/