Je rencontre des problèmes avec l'utilisation de FormDataMultiPart.Un lecteur de corps de message pour FormDataMultiPart n'a pas été trouvé
Pour une raison quelconque, il semble que la configuration de MultiPartFeature ne soit pas appelée, même si je l'ai placée dans mon fichier web.xml, voici mon code ci-dessous.
web.xml
<servlet>
<servlet-name>REST</servlet-name>
<servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>com.sun.jersey.config.property.packages</param-name>
<param-value>com.rest</param-value>
</init-param>
<init-param>
<param-name>jersey.config.server.provider.classnames</param-name>
<param-value>org.glassfish.jersey.media.multipart.MultiPartFeature</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
Ma méthode reste
@POST
@Path("https://stackoverflow.com/users/{userId}/images")
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.MULTIPART_FORM_DATA)
public Response uploadImage(@HeaderParam("securityToken") String securityToken, @PathParam("userId") Integer userId,
FormDataMultiPart form) {}
et le message du journal
09-Aug-2016 09:41:42.718 SEVERE [http-nio-8080-exec-10] com.sun.jersey.spi.container.ContainerRequest.getEntity A message body reader for Java class org.glassfish.jersey.media.multipart.FormDataMultiPart, and Java type class org.glassfish.jersey.media.multipart.FormDataMultiPart, and MIME media type multipart/form-data; boundary=myRandomBoundary12345 was not found.
The registered message body readers compatible with the MIME media type are:
*/* ->
com.sun.jersey.core.impl.provider.entity.FormProvider
com.sun.jersey.core.impl.provider.entity.StringProvider
com.sun.jersey.core.impl.provider.entity.ByteArrayProvider
com.sun.jersey.core.impl.provider.entity.FileProvider
com.sun.jersey.core.impl.provider.entity.InputStreamProvider
com.sun.jersey.core.impl.provider.entity.DataSourceProvider
com.sun.jersey.core.impl.provider.entity.XMLJAXBElementProvider$General
com.sun.jersey.core.impl.provider.entity.ReaderProvider
com.sun.jersey.core.impl.provider.entity.DocumentProvider
com.sun.jersey.core.impl.provider.entity.SourceProvider$StreamSourceReader
com.sun.jersey.core.impl.provider.entity.SourceProvider$SAXSourceReader
com.sun.jersey.core.impl.provider.entity.SourceProvider$DOMSourceReader
com.sun.jersey.json.impl.provider.entity.JSONJAXBElementProvider$General
com.sun.jersey.core.impl.provider.entity.XMLRootElementProvider$General
com.sun.jersey.core.impl.provider.entity.XMLListElementProvider$General
com.sun.jersey.core.impl.provider.entity.XMLRootObjectProvider$General
com.sun.jersey.core.impl.provider.entity.EntityHolderReader
com.sun.jersey.json.impl.provider.entity.JSONRootElementProvider$General
com.sun.jersey.json.impl.provider.entity.JSONListElementProvider$General
Vous confondez 1.x Jersey et Jersey 2.x. Quelle version voulez-vous utiliser? –
Voir ma réponse mise à jour. –