appengine-maven-plugin.JsonSyntaxException: java.lang.Illega



我已经描述了我在这个问题上的情况:https://github.com/GoogleCloudPlatform/appengine-plugins-core/issues/828。

我想从我的 Windows 8.1 64 位计算机使用 appengine-maven-plugin (v2.2.0( 将我的 Spring Boot 应用程序部署到 Google Cloud App Engine。

实际情况:

请查看堆栈跟踪的以下部分:

原因:com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: 预期BEGIN_ARRAY但为 STRING 在第 2 行第 1 列路径 $ at com.google.gson.Gson.fromJson (Gson.java:939( at com.google.gson.Gson.fromJson (Gson.java:892( at com.google.gson.Gson.fromJson (Gson.java:841( at com.google.cloud.tools.appengine.operations.cloudsdk.serialization.CloudSdkComponent.fromJsonList (CloudSdkComponent.java:67( at com.google.cloud.tools.managedcloudsdk.ManagedCloudSdk.isUpToDate (ManagedCloudSdk.java:153(

问题很明显:在 ManagedCloudSdk 类的第 152 行中生成的结果变量的值不是 json 格式。

我使用命令提示符在我的机器中执行了以下命令:

gcloud 组件列表 --format=json --filter=state.name:更新可用

由于"更新"和"可用"之间的空格字符,它导致了错误:

错误:(gcloud.components.list(无法识别的参数:可用

所以,我认为这个错误消息是结果变量的值。由于它没有 json 格式,因此会引发异常。

预期情况:

我尝试了以下命令:

gcloud 组件列表 --format=json --filter=state.name:"更新可用">

它运行良好,并因此生成一个空数组。 所以,我想知道如果像这样创建更新可用命令变量会是什么结果:

`    List<String> updateAvailableCommand = Arrays.asList(getGcloudPath().toString(),"components","list","--format=json","--filter=state.name:"Update Available"");    `

你觉得怎么样?或者你有更好的主意吗?

感谢您的帮助和提前时间!

此致敬意 László

我已经安装了带有VirtualBox的Ubuntu OS,并且它起作用了。

相关内容

最新更新