Вопрос:

Пример gRPC распознавания речи Google Cloud Java завершается ошибкой с NoSuchMethodError

java maven intellij-idea google-cloud-platform grpc

386 просмотра

1 ответ

1 Репутация автора

Итак, я скачал образцы Java Google Cloud и попытался запустить jar с примером потоковой передачи. Для этого я изменил pom.xml, добавив тег основного класса под конец тега, который имел тег дескриптора jar-with-dependencies.

<archive>
    <manifest>
          <addClasspath>true</addClasspath>
          <mainClass>com.examples.cloud.speech.StreamingRecognizeClient</mainClass>
    </manifest>
</archive>

Проблема в том, что я получаю эту ошибку при попытке запустить упакованный jar, mvn compile и пакет работают нормально, но выполнить эту команду не удается.

Я проверил пакет grpc, maxInboundMessageSize () прямо в AbstractManagedChannelImplBuilder, который расширяет NettyChannelBuilder. Пример отлично работает, когда я запускаю его из Intellij.

java -jar grpc-sample-1.0-jar-with-dependencies.jar                                                                                                                                                                            master
Exception in thread "main" java.lang.NoSuchMethodError: io.grpc.netty.NettyChannelBuilder.maxInboundMessageSize()I
        at io.grpc.netty.NettyChannelBuilder.buildTransportFactory(NettyChannelBuilder.java:263)
        at io.grpc.internal.AbstractManagedChannelImplBuilder.build(AbstractManagedChannelImplBuilder.java:239)
        at io.grpc.internal.AbstractManagedChannelImplBuilder.build(AbstractManagedChannelImplBuilder.java:69)
        at com.examples.cloud.speech.StreamingRecognizeClient.createChannel(StreamingRecognizeClient.java:109)
        at com.examples.cloud.speech.StreamingRecognizeClient.main(StreamingRecognizeClient.java:282)

То же самое происходит, когда я оставляю pom.xml без изменений и вместо этого запускаю:

java -cp target/grpc-sample-1.0-jar-with-dependencies.jar com.examples.cloud.speech.StreamingRecognizeClient

Я также хотел бы знать, почему мои другие варианты упаковки с Maven, я никогда не работал с ним раньше, и я уверен, что что-то испортил.

Спасибо

Автор: razvan Источник Размещён: 08.03.2017 07:38

Ответы (1)


0 плюса

1 Репутация автора

Я сделал новый клон git, и у меня та же проблема.

Это то, что я делаю:

git clone "https://github.com/GoogleCloudPlatform/java-docs-samples" <br>
cd /Users/bweekes/workspace/gs2/java-docs-samples/speech/grpc <br>
mvn compile <br>
mvn assembly:single <br>

export GOOGLE_APPLICATION_CREDENTIALS=/Users/bweekes/workspace/gs/Blackboard-233316c9dd01.json

bin/speech-sample-streaming.sh --host=speech.googleapis.com --port=443 --sampling=16000

Следующая ошибка напечатана для всех образцов

Exception in thread "main" java.lang.NoSuchMethodError: io.grpc.netty.NettyChannelBuilder.maxInboundMessageSize()I
at io.grpc.netty.NettyChannelBuilder.buildTransportFactory(NettyChannelBuilder.java:274)
at io.grpc.internal.AbstractManagedChannelImplBuilder.build(AbstractManagedChannelImplBuilder.java:239)
at io.grpc.internal.AbstractManagedChannelImplBuilder.build(AbstractManagedChannelImplBuilder.java:69)
at com.examples.cloud.speech.StreamingRecognizeClient.createChannel(StreamingRecognizeClient.java:109)
at com.examples.cloud.speech.StreamingRecognizeClient.main(StreamingRecognizeClient.java:287)
Автор: Ben Weekes Размещён: 22.03.2017 06:12
Вопросы из категории :
32x32