Мы пытаемся прочитать составной REST-запрос на стороне сервера.
В работающий Java-проект REST были внесены следующие изменения.
web.xml
<servlet>
<servlet-name>AbcServlet</servlet-name>
<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>javax.ws.rs.Application</param-name>
<param-value>filter-name</param-value>
</init-param>
<init-param>
<param-name>com.sun.jersey.config.property.packages</param-name>
<param-value>package-name</param-value>
</init-param>
<init-param>
<param-name>com.sun.jersey.api.json.POJOMappingFeature</param-name>
<param-value>true</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
dependencies.gradle
compile('com.sun.jersey.contribs:jersey-multipart:1.2')
compile('org.jvnet:mimepull:1.4')
Java-код:
@POST
@Path("/upload")
@Consumes("multipart/form-data")
@Produces("application/xml")
public Response upload(@Context UriInfo uriInfo, @Context HttpServletRequest request, FormDataMultiPart multipart ) {
.....java code....
}
Но когда я проверяю этоСлужба REST, использующая POSTMan, выдает следующую ошибку:
javax.ws.rs.InternalServerErrorException: HTTP 500 Internal Server Error
at org.glassfish.jersey.server.internal.MappableExceptionWrapperInterceptor.aroundWriteTo(MappableExceptionWrapperInterceptor.java:90)
at org.glassfish.jersey.message.internal.WriterInterceptorExecutor.proceed(WriterInterceptorExecutor.java:162)
at org.glassfish.jersey.message.internal.MessageBodyFactory.writeTo(MessageBodyFactory.java:1130)
at org.glassfish.jersey.server.ServerRuntime$Responder.writeResponse(ServerRuntime.java:711)
at org.glassfish.jersey.server.ServerRuntime$Responder.processResponse(ServerRuntime.java:444)
Truncated. see log file for complete stacktrace
Caused By: org.glassfish.jersey.message.internal.MessageBodyProviderNotFoundException: MessageBodyWriter not found for media type=multipart/form-data, ...
at org.glassfish.jersey.message.internal.WriterInterceptorExecutor$TerminalWriterInterceptor.aroundWriteTo(WriterInterceptorExecutor.java:247)
at org.glassfish.jersey.message.internal.WriterInterceptorExecutor.proceed(WriterInterceptorExecutor.java:162)
at org.glassfish.jersey.server.internal.JsonWithPaddingInterceptor.aroundWriteTo(JsonWithPaddingInterceptor.java:106)
at org.glassfish.jersey.message.internal.WriterInterceptorExecutor.proceed(WriterInterceptorExecutor.java:162)
at org.glassfish.jersey.server.internal.MappableExceptionWrapperInterceptor.aroundWriteTo(MappableExceptionWrapperInterceptor.java:86)
Truncated. see log file for complete stacktrace
>
Feb 04, 2019 6:22:06 PM org.glassfish.jersey.server.ServerRuntime$Responder process
SEVERE: Error occurred when processing a response created from an already mapped exception.
Я также прочитал и внес изменения в соответствии с Исключение клиента в Джерси: не был найден модуль записи тела сообщения
Пожалуйста, сообщите, что нужно сделать, чтобы решить эту проблему.
Можете ли вы также предоставить код на стороне клиента, чтобы проверить его в тестовом примере.