Spring 应用程序未启动
Spring application not booting
我在 Spring 工具套件中有一个 spring 引导项目,它连接到 Google Cloud Spanner 数据库。连接到 Spanner 的凭据在 JSON 文件中,我已将其作为环境变量包含在 运行 配置中。
当我 运行 应用程序时,出现以下错误并且应用程序终止。
Failed to instantiate [com.google.cloud.spanner.SpannerOptions]:
Factory method 'spannerOptions' threw exception; nested exception is java.lang.NoSuchMethodError: org.json.JSONTokener.<init>(Ljava/io/InputStream;)
我有另一个项目连接到 Spanner,它工作得很好。
我正在使用 Java 8
请帮助我了解此错误的原因。
从报错信息来看,似乎是你的依赖树发生了冲突。您的一个或某些依赖项依赖于 org.json.JSONTokener
的不兼容版本,该版本没有接受 InputStream 作为参数的构造函数。
你可以尝试的一件事是比较你的工作项目和这个项目的依赖关系。如果您使用 logback 作为记录器,您可以启用 packaging data 来打印出正在使用的 jar 文件,这样您就可以确切地知道是哪个库导致了问题。知道是什么库导致问题后,就可以升级库的版本了(注意:有时是传递性的,所以必须升级引入这个问题包的库)。
我在 Spring 工具套件中有一个 spring 引导项目,它连接到 Google Cloud Spanner 数据库。连接到 Spanner 的凭据在 JSON 文件中,我已将其作为环境变量包含在 运行 配置中。
当我 运行 应用程序时,出现以下错误并且应用程序终止。
Failed to instantiate [com.google.cloud.spanner.SpannerOptions]:
Factory method 'spannerOptions' threw exception; nested exception is java.lang.NoSuchMethodError: org.json.JSONTokener.<init>(Ljava/io/InputStream;)
我有另一个项目连接到 Spanner,它工作得很好。 我正在使用 Java 8
请帮助我了解此错误的原因。
从报错信息来看,似乎是你的依赖树发生了冲突。您的一个或某些依赖项依赖于 org.json.JSONTokener
的不兼容版本,该版本没有接受 InputStream 作为参数的构造函数。
你可以尝试的一件事是比较你的工作项目和这个项目的依赖关系。如果您使用 logback 作为记录器,您可以启用 packaging data 来打印出正在使用的 jar 文件,这样您就可以确切地知道是哪个库导致了问题。知道是什么库导致问题后,就可以升级库的版本了(注意:有时是传递性的,所以必须升级引入这个问题包的库)。