記錄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

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