记录springBoot整合jersey实现文件上传的一些坑

问题一: 缺少包jersey-media-multipart 且没有保持版本一致

Servlet.init() for servlet [com.storageservice.config.JerseyConfig] threw exception
java.lang.NoClassDefFoundError: org/glassfish/jersey/server/internal/inject/AbstractValueFactoryProvider

出现上模的原因:SpringBoot没有默认添加jersey-media-multipart依赖,仅定义了需要的版本,如果未引入这个包,将无法使用@FormDataParam注解和Multipart相关的类,无法对Multipart内容进行解析;JerseyConfig中需要注册MultiPartFeature.class,否则会出现报错,无法正确注入文件输入流对象

加入对应版本的依赖,整合的maven

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-jersey</artifactId>
		</dependency>
		<dependency>
			<groupId>org.glassfish.jersey.media</groupId>
			<artifactId>jersey-media-multipart</artifactId>
			<version>2.27</version>
		</dependency>
		<!-- https://mvnrepository.com/artifact/com.sun.jersey.contribs/jersey-multipart -->
		<dependency>
			<groupId>com.sun.jersey.contribs</groupId>
			<artifactId>jersey-multipart</artifactId>
			<version>1.19.4</version>
		</dependency>

在这里插入图片描述
注意:一定要保持版本一致


问题二:缺少MIMEParsingException

java.lang.NoClassDefFoundError: org/jvnet/mimepull/MIMEParsingException

		<dependency>
			<groupId>com.sun.jersey.contribs</groupId>
			<artifactId>jersey-multipart</artifactId>
			<version>1.19.4</version>
		</dependency>

目前最高版本为1.19.4

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章