Home >Java >javaTutorial >How to Fix 'No injection source found' Errors in Multipart/Form-data REST API Uploads?

How to Fix 'No injection source found' Errors in Multipart/Form-data REST API Uploads?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-09 06:04:09564browse

How to Fix

Debugging a MULTIPART_FORM_DATA Injection Error in a RESTful API Service

A common error encountered when uploading files through a RESTful API using the MULTIPART_FORM_DATA content type is:

"No injection source found for a parameter of type public javax.ws.rs.core.Response..."

Identifying the Cause

This error typically occurs due to missing or incorrect JAR dependencies for handling multipart forms.

Solution

To resolve this issue, you need to replace the outdated jersey-multipart-1.18.jar dependency with the following two:

  • jersey-media-multipart-2.17
  • mimepull-1.9.3

In your Maven dependency, use:

<dependency>
    <groupId>org.glassfish.jersey.media</groupId>
    <artifactId>jersey-media-multipart</artifactId>
    <version>2.17</version>
</dependency>

Registering the MultiPartFeature

  • If using a ResourceConfig for configuration, register the MultiPartFeature:
register(MultiPartFeature.class);
  • If using web.xml, add an init-param to the Jersey servlet:
<init-param>
    <param-name>jersey.config.server.provider.classnames</param-name>
    <param-value>org.glassfish.jersey.media.multipart.MultiPartFeature</param-value>
</init-param>

Additional Notes

  • Ensure that the Jersey version in the dependency matches your current version.
  • The import statements for FormDataParam and FormDataContentDisposition may need to be updated to their new locations (e.g., org.glassfish.jersey.media.multipart).
  • If needed, refer to the references provided in the "Aside" section for troubleshooting other causes of ModelValidationException.

The above is the detailed content of How to Fix 'No injection source found' Errors in Multipart/Form-data REST API Uploads?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn