2017-05-31 5 views
4

Der Aufruf der neueren Version von com.google.cloud.pubsub.spi.v1.Publisher.publish(pubsubMessage).get() hängt für immer. Ich bin mir nicht sicher, was das Problem ist.com.google.cloud.pubsub.spi.v1.Publisher.publish sendet keine Daten an PubSub

Code-Snippet:

com.google.cloud.pubsub.spi.v1.Publisher publisher = Publisher.defaultBuilder(TopicName.parse("projects/" + projectId + "/topics/" + topicName)) 
      .setChannelProvider(TopicAdminSettings 
        .defaultChannelProviderBuilder() 
        .setCredentialsProvider(FixedCredentialsProvider.create(ServiceAccountCredentials.fromStream(new FileInputStream(keyFile)))) 
        .build()) 
      .build(); 
ApiFuture<String> messageIdFuture = publisher.publish(pubsubMessage); 
messageIdFuture.get() // HANGS FOREVER!! 

Die ältere API funktioniert gut, wo wir tun:

GoogleCredential credential = new GoogleCredential.Builder() 
      .setTransport(new NetHttpTransport()) 
      .setJsonFactory(JSON_FACTORY) 
      .setServiceAccountId(serviceAccount) 
      .setServiceAccountScopes(Arrays.asList(PubsubScopes.PUBSUB)) 
      .setServiceAccountPrivateKeyFromP12File(new File(keyFile)) 
      .build(); 

Pubsub pusub = new Pubsub.Builder(transport, JSON_FACTORY, credential).setApplicationName("bigquery").build(); 

PubsubMessage pubsubMessage = new PubsubMessage(); 
pubsubMessage.encodeData(message.getBytes()); 

PublishRequest publishRequest = new PublishRequest(); 
publishRequest.setMessages(Arrays.asList(pubsubMessage)); 
pubsub.projects().topics().publish(outputTopic, publishRequest).execute(); 

jemand kann darauf hinweisen, was bin ich dabei?

Antwort

0

Ich habe keine Ahnung warum, aber sobald ich eine Kompilierabhängigkeit für Guava hinzufügen, hängt nicht mehr auf einen Anruf.

compile group: 'com.google.guava', name: 'guava', version: '23.0' 
Verwandte Themen