Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring boot spark应用程序_Java_Spring_Apache Spark_Spring Boot - Fatal编程技术网

Java Spring boot spark应用程序

Java Spring boot spark应用程序,java,spring,apache-spark,spring-boot,Java,Spring,Apache Spark,Spring Boot,我使用SpringBoot来实现spark应用程序。我构建了一个uber jar,并使用spark submit来执行应用程序。但我有以下例外: 18/06/05 15:32:37错误SpringApplication:应用程序运行失败 org.springframework.beans.factory.BeanCreationException:创建在类路径资源中定义了名为“gsonBuilder”的bean时出错 [org/springframework/boot/autoconfigure

我使用SpringBoot来实现spark应用程序。我构建了一个uber jar,并使用spark submit来执行应用程序。但我有以下例外:

18/06/05 15:32:37错误SpringApplication:应用程序运行失败 org.springframework.beans.factory.BeanCreationException:创建在类路径资源中定义了名为“gsonBuilder”的bean时出错 [org/springframework/boot/autoconfigure/gson/GsonAutoConfiguration.class]: 通过工厂方法实例化Bean失败;嵌套异常是 org.springframework.beans.BeanInstantiationException:未能 实例化[com.google.gson.GsonBuilder]:工厂方法 “gsonBuilder”引发异常;嵌套异常是 java.lang.BootstrapMethod

错误:java.lang.NoSuchMethodError:com.google.gson.GsonBuilder.setLenient()Lcom/google/gson/GsonBuilder; 位于org.springframework.beans.factory.support.ConstructorResolver.InstanceUsingFactoryMethod(ConstructorResolver.java:587) 位于org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.InstanceUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1254) 位于org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1103)

即使我在我的
pom.xml
中添加了以下依赖项,异常仍然存在:

<dependency>
   <groupId>com.google.code.gson</groupId>
   <artifactId>gson</artifactId>
   <version>2.8.5</version>
   <scope>compile</scope>           
</dependency>

com.google.code.gson
格森
2.8.5
编撰

如何解决此依赖关系问题?

也许您可以使用
@springbootcapplication(exclude={GsonAutoConfiguration.class})
禁用gson自动配置。

检查mvn依赖关系:树以验证您没有获得多个gson库。是否调用
setLenient
?如果是这样的话,您可能需要检查构建中实际使用的版本,spring boot的依赖项管理有时会覆盖依赖项版本,并且可能会放置一个还没有这种方法的版本。如果不调用该方法,则可能是boot的自动配置代码,在这种情况下,您可能幸运地没有放入
,以便boot获得所需的版本。旁注,boot到处都在使用jackson,也许你也可以用它来代替gsonI检查安装的spark-jar文件夹,并找到一个没有setLenient方法的gson-2.2.4.jar。虽然我构建了一个uber jar,但这个jar文件似乎是用来运行应用程序的。这为我解决了这个问题!我检查了我的项目依赖关系树,发现
Gson
仅是
org.apache.hadoop:hadoop common:2.6.5
所需,它是
Spark
的依赖关系,而不是
Spring
。所以我在寻找一些东西来避免春天的混乱!