2016-06-06 22 views
1

Ich weiß, dass es einige Threads mit der gleichen Frage gibt, aber ich bekomme es nicht richtig laufen. Ich bin noch sehr neu dabei.JAX-RS POST-Methode 415 Nicht unterstützter Medientyp

Ich habe einen JAX-RS-Server läuft:

Die GET Methode funktioniert. Die POST Methode nicht.

@POST 
@Consumes(MediaType.APPLICATION_JSON) 
@Produces(MediaType.APPLICATION_JSON) 
public Response post(Movie movie){ 
    System.out.println("In the POST method"); 

    String result = movie.toString(); 

    return Response.status(201).entity(result).build(); 

In meinem Oracle JET-Client möchte ich einen Beitrag machen:

addMovie = function(){ 
    console.log("post sent"); 
     $.ajax({ 
     type: "POST", 
     url: "http://localhost:8080/MovieRestService/resources/movies", 
     headers: { 

      "Content-Type": "application/json" 
     },   
     data: 
        { 
         id: 2, 
         name: "test", 
         director: "test", 
         year: 234 
        }, 
     success: "success", 
     dataType: 'application/json' 
     }); 

Es ist mir ein 415 Unsupported Media Type Fehler hält zu geben. Etwas, das mir etwas komisch scheint ist, dass in der Antwort-Header der Inhaltstyp ist text/html Content-Type: text/htlm

Wer hat eine Lösung?

EDIT:

Nach viel auf dem Netz zu suchen, schließlich gelang es mir, um herauszufinden, was das eigentliche Problem ist ... Es scheint, dass Glassfish 4.1.1 einen Fehler darin hat, was die Probleme verursacht wurde 'application/json', datatype: während einen Beitrag zu meinem Server machen ...

+0

Try Einstellung '' content arbeiten ‚json''' – gmaslowski

+0

@gmaslowski nicht für mich arbeiten. Immer noch den gleichen Fehler – RSSD

Antwort

0

Dies sollte

var url = 'http://localhost:8080/MovieRestService/resources/movies'; 
    var sucessCallback = function(response) {...} 
    var data = JSON.stringify({ 
        id: 2, 
        name: "test", 
        director: "test", 
        year: 234 
       }); 
    $.ajax({ 
     url: url, 
     method: POST, 
     contentType: 'application/json; charset=utf-8', 
     dataType: 'json', 
     data: data, 
     cache: false, 
     context: this, 
    }).success(sucessCallback); 
+0

Wenn ich dies verwende, wird es als eine "GET" -Methode gesehen. Es gibt alle Datensätze aus der Datenbank zurück – RSSD

+0

Sorry, ich habe vergessen, Methode Post hinzuzufügen. –

+0

Ja, ich habe das bereits manuell hinzugefügt, aber es wird immer noch derselbe Fehler ausgegeben. – RSSD