简体   繁体   English

Google DocumentAI Java 示例因 io.grpc.StatusRuntimeException 失败:INVALID_ARGUMENT:请求包含无效参数

[英]Google DocumentAI Java example fails with io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Request contains an invalid argument

I wasted hours trying the Google Document AI java example from https://cloud.google.com/document-ai/docs/quickstart-client-libraries浪费了数小时尝试来自https://cloud.google.com/document-ai/docs/quickstart-client-libraries的 Google Document AI java示例

If you enter your for projectId, location and processorId like this如果您像这样输入您的项目 ID、位置和处理器 ID

        String projectId = "6493xxxxxxxx";
        String location = "eu";
        String processorId = "74451xxxxxx";
        String filePath = "/Users/schube/Desktop/file.pdf";

and run the example, you just get an InvalidArgumentException :并运行该示例,您只会得到一个InvalidArgumentException

Exception in thread "main" com.google.api.gax.rpc.InvalidArgumentException: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Request contains an invalid argument.
    at com.google.api.gax.rpc.ApiExceptionFactory.createException(ApiExceptionFactory.java:49)
    at com.google.api.gax.grpc.GrpcApiExceptionFactory.create(GrpcApiExceptionFactory.java:72)
    at com.google.api.gax.grpc.GrpcApiExceptionFactory.create(GrpcApiExceptionFactory.java:60)
    at com.google.api.gax.grpc.GrpcExceptionCallable$ExceptionTransformingFuture.onFailure(GrpcExceptionCallable.java:97)
    at com.google.api.core.ApiFutures$1.onFailure(ApiFutures.java:68)
    at com.google.common.util.concurrent.Futures$CallbackListener.run(Futures.java:1133)
    at com.google.common.util.concurrent.DirectExecutor.execute(DirectExecutor.java:31)
    at com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:1277)
    at com.google.common.util.concurrent.AbstractFuture.complete(AbstractFuture.java:1038)
    at com.google.common.util.concurrent.AbstractFuture.setException(AbstractFuture.java:808)
    at io.grpc.stub.ClientCalls$GrpcFuture.setException(ClientCalls.java:563)
    at io.grpc.stub.ClientCalls$UnaryStreamToFuture.onClose(ClientCalls.java:533)
    at io.grpc.internal.DelayedClientCall$DelayedListener$3.run(DelayedClientCall.java:463)
    at io.grpc.internal.DelayedClientCall$DelayedListener.delayOrExecute(DelayedClientCall.java:427)
    at io.grpc.internal.DelayedClientCall$DelayedListener.onClose(DelayedClientCall.java:460)
    at io.grpc.internal.ClientCallImpl.closeObserver(ClientCallImpl.java:557)
    at io.grpc.internal.ClientCallImpl.access$300(ClientCallImpl.java:69)
    at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1StreamClosed.runInternal(ClientCallImpl.java:738)
    at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1StreamClosed.runInContext(ClientCallImpl.java:717)
    at io.grpc.internal.ContextRunnable.run(ContextRunnable.java:37)
    at io.grpc.internal.SerializingExecutor.run(SerializingExecutor.java:133)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)
    Suppressed: com.google.api.gax.rpc.AsyncTaskException: Asynchronous task failed
        at com.google.api.gax.rpc.ApiExceptions.callAndTranslateApiException(ApiExceptions.java:57)
        at com.google.api.gax.rpc.UnaryCallable.call(UnaryCallable.java:112)
        at com.google.cloud.documentai.v1.DocumentProcessorServiceClient.processDocument(DocumentProcessorServiceClient.java:232)
        at documentai.QuickStart.quickStart(QuickStart.java:57)
        at documentai.QuickStart.main(QuickStart.java:25)
Caused by: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Request contains an invalid argument.
    at io.grpc.Status.asRuntimeException(Status.java:535)
    ... 13 more

That is really great, because which f*** element is invalid?这真的很棒,因为哪个 f*** 元素无效? There are no details in the exception and there is no logfile.异常中没有详细信息,也没有日志文件。

So, turns out after reading this: What argument is invalid for Google Document AI client library for Node js?所以,读完这篇文章后发现: Node js 的 Google Document AI 客户端库的参数是无效的吗?

that if the location is not "us" but "eu", you have to specify an other endpoint.如果位置不是“我们”而是“欧盟”,则必须指定另一个端点。

Oh man, why did they not mention that in the tutorial or the source code?哦,伙计,为什么他们没有在教程或源代码中提到这一点? It just says:它只是说:

    // TODO(developer): Replace these variables before running the sample.
    String projectId = "your-project-id";
    String location = "your-project-location"; // Format is "us" or "eu".
    String processorId = "your-processor-id";
    String filePath = "path/to/input/file.pdf";

The really should have mentioned that it is not enough to switch to "eu".真的应该提到切换到“欧盟”是不够的。

So the simple solution is, do not use所以简单的解决方案是,不要使用

        try (DocumentProcessorServiceClient client = DocumentProcessorServiceClient.create()) {

but

        try (DocumentProcessorServiceClient client = DocumentProcessorServiceClient.create(
                DocumentProcessorServiceSettings.newBuilder().setEndpoint("eu-documentai.googleapis.com:443").build())) {

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 通过 Java API 创建 Google Cloud Function:“io.grpc.StatusRuntimeException: INVALID_ARGUMENT” - Creating Google Cloud Function via Java API: “io.grpc.StatusRuntimeException: INVALID_ARGUMENT” io.grpc.StatusRuntimeException:UNIMPLEMENTED:找不到方法 - io.grpc.StatusRuntimeException: UNIMPLEMENTED: Method not found 数据流中的错误:io.grpc.StatusRuntimeException:不可用 - Error in Dataflow: io.grpc.StatusRuntimeException: UNAVAILABLE grpc 客户端-流式 Java 客户端获取 io.grpc.StatusRuntimeException: UNAVAILABLE: HTTP 状态代码 503 - grpc Client-Streaming Java Client gets io.grpc.StatusRuntimeException: UNAVAILABLE: HTTP status code 503 io.grpc.StatusRuntimeException: DEADLINE_EXCEEDED 同时从谷歌云 PubSub 获取主题(发布者)名称 - io.grpc.StatusRuntimeException: DEADLINE_EXCEEDED while getting the topic(publisher) name from Google cloud PubSub Google Dataflow / Dataprep Shuffle键太大(INVALID_ARGUMENT) - Google Dataflow / Dataprep Shuffle key too large (INVALID_ARGUMENT) 引起:io.grpc.StatusRuntimeException:NOT_FOUND:找不到资源 - Caused by: io.grpc.StatusRuntimeException: NOT_FOUND: Resource not found Unity 广告返回 INVALID_ARGUMENT - Unity ads returns INVALID_ARGUMENT java.io.IOException:参数无效 - java.io.IOException: Invalid argument gRpc,客户端获取 io.grpc.StatusRuntimeException: UNIMPLEMENTED: 即使消息被服务器接收并反序列化的方法 - gRpc, client getting io.grpc.StatusRuntimeException: UNIMPLEMENTED: Method even when the message is received and deserialized by the server
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM