Ich benutze Resteasy. Hier ist ein Code zum Löschen einer Ressource.Pass Request Parameter zu löschen Anfrage im Ruhezustand
@DELETE
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
@Path("/{id:\\d+}")
public Response removeResource(@PathParam("id") int id){
.........................
.. code to delete resource and return Response object ..
.........................
}
Dieser Code funktioniert einwandfrei. Aber wenn ich versuche, einen Parameter zu übergeben, um die Anfrage zu löschen. Ich bekomme UnsupportedMediaException
@DELETE
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
@Path("/{id:\\d+}")
public Response removeResource(@PathParam("id") int id, Map<String, Object> source){
.........................
.. code to delete resource and return Response object ..
.........................
}
Ich muss einige Parameter aus irgendeinem Grund senden. Außerdem, wenn ich nur delete
Anfrage mit put
Anfrage ersetzen, d. H. @DELETE
durch @PUT
ersetzen, funktioniert der Code gut.
Gibt es eine Möglichkeit, Parameter zum Löschen der Anfrage zu übergeben.
Und am vorderen Ende war ich AngularJS den $ Ressource mit DELETE Anfrage
var r = $Resource(/rest/resources/1); // for debugging purpose I made id 1
r.remove({"key1":"data1", "key2", "data2"});
bearbeiten senden: vom Server
Stapelüberwachung
11:43:25,767 ERROR [org.jboss.resteasy.resteasy_jaxrs.i18n] (default task-7) RESTEASY002010: Failed to execute: javax.ws.rs.NotSupportedException: RESTEASY003065: Cannot consume content type
at org.jboss.resteasy.core.registry.SegmentNode.match(SegmentNode.java:382)
at org.jboss.resteasy.core.registry.SegmentNode.match(SegmentNode.java:116)
at org.jboss.resteasy.core.registry.RootNode.match(RootNode.java:43)
at org.jboss.resteasy.core.registry.RootClassNode.match(RootClassNode.java:48)
at org.jboss.resteasy.core.ResourceMethodRegistry.getResourceInvoker(ResourceMethodRegistry.java:445)
at org.jboss.resteasy.core.SynchronousDispatcher.getInvoker(SynchronousDispatcher.java:257)
at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:194)
at org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:221)
at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:56)
at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:51)
Verhalten am Front-End-
Status Code: 415 Unsupported Media Type
Connection: keep-alive
Content-Length: 0
Date: Wed, 01 Jun 2016 06:13:25 GMT
Server: WildFly/10
x-powered-by: Undertow/1
Können Sie die komplette stacktrace zeigen –
auch einige Server nicht Unterstütze einen Körper mit DELETE. Obwohl die 'UnsupportedMediaException' wie eine RESTEasy-Ausnahme aussieht, tritt der Fehler auf Anwendungsebene auf. Ich bin mir nicht sicher, welche Regeln RESTEasy diesbezüglich hat. Im schlimmsten Fall senden Sie einfach die Daten in den Abfrageparametern –
@peeskillet Ich fügte Stacktrace des Webservers und Antwort am vorderen Ende hinzu – afzalex