Google Cloud发布/订阅Java客户端库不使用本地模拟器

Google Cloud发布/订阅Java客户端库不使用本地模拟器,java,scala,google-cloud-platform,google-cloud-pubsub,Java,Scala,Google Cloud Platform,Google Cloud Pubsub,我正在尝试使用谷歌云发布/订阅模拟器来测试我的scala应用程序。声明如下:- 运行env init命令以确定和设置模拟器使用的环境变量。请注意,遵循这些说明后,代码中的Google Cloud发布/订阅客户端库将调用本地实例中运行的API,而不是生产API 但当我发布消息或创建主题时,它会在云中执行,而不是在本地模拟器上执行。我已经确认使用打印的println(s“ENV:${sys.ENV(“PUBSUB\u EMULATOR\u HOST”)}正确设置了环境变量 我尝试强制库使用我的本地设

我正在尝试使用谷歌云发布/订阅模拟器来测试我的scala应用程序。声明如下:-

运行env init命令以确定和设置模拟器使用的环境变量。请注意,遵循这些说明后,代码中的Google Cloud发布/订阅客户端库将调用本地实例中运行的API,而不是生产API

但当我发布消息或创建主题时,它会在云中执行,而不是在本地模拟器上执行。我已经确认使用打印的
println(s“ENV:${sys.ENV(“PUBSUB\u EMULATOR\u HOST”)}
正确设置了环境变量

我尝试强制库使用我的本地设置,如下所示

val settings = TopicAdminSettings.defaultBuilder()
  .setChannelProvider(InstantiatingChannelProvider.newBuilder()
    .setEndpoint("localhost:8085")
      .setCredentialsProvider(TopicAdminSettings.defaultCredentialsProviderBuilder().build())
    .build())
  .build()

val topicAdminClient = TopicAdminClient.create(settings)
topicAdminClient.createTopic(topicName)
通过这种方式,我成功地向本地安装程序发送请求,但这会导致以下错误-

[pubsub] 6 14, 2017 2:49:11 午後 io.gapi.emulators.grpc.GrpcServer$3 operationComplete
[pubsub] INFO: Adding handler(s) to newly registered Channel.
[pubsub] 6 14, 2017 2:49:11 午後io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
[pubsub] INFO: Detected non-HTTP/2 connection.
[pubsub] 6 14, 2017 2:49:11 午後 io.gapi.emulators.netty.NotFoundHandler handleRequest
[pubsub] INFO: Unknown request URI: /bad-request
[pubsub] 6 14, 2017 2:49:35 午後 io.gapi.emulators.grpc.GrpcServer$3 operationComplete
[pubsub] INFO: Adding handler(s) to newly registered Channel.
[pubsub] 6 14, 2017 2:49:35 午後 io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
[pubsub] INFO: Detected non-HTTP/2 connection.
[pubsub] 6 14, 2017 2:49:35 午後 io.gapi.emulators.netty.NotFoundHandler handleRequest
[pubsub] INFO: Unknown request URI: /bad-request
我启动了仿真器,如下所示-

PC-12041:random kakaji$ sudo gcloud beta emulators pubsub start
Password:
Executing: /usr/local/google-cloud-sdk/platform/pubsub-emulator/bin/cloud-pubsub-emulator --host=localhost --port=8085
[pubsub] This is the Google Pub/Sub fake.
[pubsub] Implementation may be incomplete or differ from the real system.
[pubsub] 6 14, 2017 2:59:21 午後 com.google.cloud.pubsub.testing.v1.Main main
[pubsub] INFO: IAM integration is disabled. IAM policy methods and ACL checks are not supported
[pubsub] 6 14, 2017 2:59:21 午後 io.grpc.internal.ManagedChannelImpl <init>
[pubsub] INFO: [ManagedChannelImpl@77b52d12] Created with target localhost:8085
[pubsub] 6 14, 2017 2:59:21 午後 io.gapi.emulators.netty.NettyUtil applyJava7LongHostnameWorkaround
[pubsub] INFO: Unable to apply Java 7 long hostname workaround.
[pubsub] 6 14, 2017 2:59:21 午後 com.google.cloud.pubsub.testing.v1.Main main
[pubsub] INFO: Server started, listening on 8085
PC-12041:random kakaji$sudo gcloud测试版模拟器pubsub启动
密码:
正在执行:/usr/local/googlecloudsdk/platform/pubsub-emulator/bin/cloud-pubsub-emulator--host=localhost--port=8085
[pubsub]这是谷歌发布/订阅的赝品。
[pubsub]实施可能不完整或与实际系统不同。
[pubsub]6142017 2:59:21午後 com.google.cloud.pubsub.testing.v1.Main
[pubsub]信息:IAM集成已禁用。不支持IAM策略方法和ACL检查
[pubsub]6142017 2:59:21午後 io.grpc.internal.ManagedChannelImpl
[pubsub]信息:[ManagedChannelImpl@77b52d12]使用目标localhost:8085创建
[pubsub]6142017 2:59:21午後 io.gapi.emulators.netty.NettyUtil applyjava7longhostname变通方法
[pubsub]信息:无法应用Java 7长主机名解决方案。
[pubsub]6142017 2:59:21午後 com.google.cloud.pubsub.testing.v1.Main
[pubsub]信息:服务器已启动,正在8085上侦听