java - appengine-maven-插件。JsonSyntaxException:java.lang.IllegalStateException:应为 BEGIN_ARRAY,但在第 2 行第 1 列路径为 STRING
问题描述
我已经描述了我在这个问题上的情况: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 但在 com.google 的 com.google.gson.Gson.fromJson (Gson.java:939) 的第 2 行第 1 列路径 $ 处为字符串.gson.Gson.fromJson (Gson.java:892) 在 com.google.gson.Gson.fromJson (Gson.java:841) 在 com.google.cloud.tools.appengine.operations.cloudsdk.serialization.CloudSdkComponent.fromJsonList (CloudSdkComponent.java:67) 在 com.google.cloud.tools.managedcloudsdk.ManagedCloudSdk.isUpToDate (ManagedCloudSdk.java:153)
问题很明显: ManagedCloudSdk类第152行产生的result变量的值不是json格式的。
我使用命令提示符在我的机器上执行了以下命令:
gcloud 组件列表 --format=json --filter=state.name:更新可用
由于“更新”和“可用”之间的空格字符,导致错误:
错误:(gcloud.components.list)无法识别的参数:可用
所以,我认为这个错误消息是结果变量的值。由于它没有 json 格式,因此会引发异常。
预期情况:
我尝试了以下命令:
gcloud 组件列表 --format=json --filter=state.name:"更新可用"
它工作得很好,结果产生了一个空数组。所以,我想知道如果 updateAvailableCommand 变量是这样创建的,结果会怎样:
` List<String> updateAvailableCommand = Arrays.asList(getGcloudPath().toString(),"components","list","--format=json","--filter=state.name:\"Update Available\""); `
你怎么看?还是你有更好的主意?
提前感谢您的帮助和时间!
最好的问候,拉斯洛
解决方案
我已经用 VirtualBox 安装了 Ubuntu 操作系统,并且它工作正常。
推荐阅读
- android - 应用程序活动延迟在导航抽屉上首次打开时
- python - 将带有时间戳的文件复制到文件夹和子文件夹中,在 Python 中按年/月/日构建
- sql - postgres 从文本中提取 int 数组
- asp.net - 在同步回发之前做一些事情
- javascript - 插入排序代码中变量的范围
- excel - 如何匹配值然后使用 if 函数
- javascript - Angularjs折叠导航栏必须点击两次才能打开
- python-3.x - dicom 文件读取错误:'RuntimeError:生成器引发 StopIteration'
- javascript - 通过 HTTP 请求发送文件
- javascript - 当内容出现在底部时使页脚向上移动