Maillot Méthode non autorisée 405
Je suis nouveau sur le reste des services. Je suis en train de créer un service qui accepte de chaîne json à partir d'un client. Je suis 405 erreur lorsque je fais appel à ce service à l'aide de JQuery.
Ci-dessous est le code Java pour ws:
@POST
@Path("logevent")
@Consumes(MediaType.APPLICATION_JSON)
public boolean logEvent(String obj)
{
System.out.println(obj);
return true;
}
et
@Path("getdata")
@GET
public String getData()
{
return "Hello";
}
et jQuery pour l'affichage de l'JSON est:
var json ="{\"userName\":\"testtest\"}";
var json_data = JSON.stringify(json);
$.ajax({
type: "POST",
url: "http://localhost:8080/log/log/logevent",
//The key needs to match your method's input parameter (case-sensitive).
data: json_data,
contentType: "application/json",
dataType: "json",
success: function(data){alert(data);},
failure: function(errMsg) {
alert(errMsg);
}
Ce qui ne va pas? Le post n'est pas de travail, mais quand je suis frappé de l'obtenir à l'aide de l'URL http://<serverip>/log/log/getdata
- je obtenir la réponse.
Merci Michal pour corriger la faute de frappe.
Qu'est-ce que le
oui, vous avez raison.
Voulez-vous dire qu'il t match?
Vous utilisez
Qu'est-ce que le
@Path
de la classe? Ne JAX-RS match /log/log/logevent
à la méthode logEvent()
?oui, vous avez raison.
Voulez-vous dire qu'il t match?
Vous utilisez
http://localhost:8080/
en jQuery, <serverip>
dans le navigateur. Tous deux sont les mêmes?
OriginalL'auteur Ritesh | 2013-08-09
Vous devez vous connecter pour publier un commentaire.
JSON
MessageBodyReader
s sont en mesure de unmarshal JSON flux dans une JAXB bean (ou POJO), mais pas dans une Chaîne. Créer un JAXB bean comme:et de changer votre
POST
méthode:Puis changement
@Consumes
deMediaType.APPLICATION_JSON
àMediaType.TEXT_PLAIN
et aussicontentType
dans votre requête ajaxtext/plain
. Mais vous aurez la{"userName":"testtest"}
Chaîne dansobj
.bingo...je suis en train de faire la même chose mais il dit ne pouvez pas consommer de type de contenu
merci Michal redémarré le serveur, et il a travaillé 🙂
OriginalL'auteur Michal Gajdos
Abord, assurez-vous que le chemin d'accès est
/log/log/logevent
Puis essayez de modifier la demande/réponse type:
Vous devez utiliser
application/json;charset=UTF-8
W3C (XHR spec), plus votre webservice ne pas répondre avec JSON mais sortie booléenne, vous devriez peut-être changer le type de réponse.Par exemple avec de l'UTF-8:
JAX-RS
jQuery
Chose intéressante, c'est que j'ai une méthode qui fonctionne très bien: @Path("getdata") @GET public String getData() { return "Bonjour"; }
OriginalL'auteur mguimard