Java Spring boot spark应用程序
我使用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) 即使我在我的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
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
。所以我在寻找一些东西来避免春天的混乱!