Nicht zum aufrufen von rest-web-service aus html-form-action-Attribut
Ich versuche zu aufrufen von rest-web-service in java geschrieben, die aus html-Formular
Meine web-service-code ist
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
@Path("/hello")
public class Hello {
@POST
@Path("/hello")
@Consumes(MediaType.TEXT_HTML)
@Produces(MediaType.TEXT_HTML)
public String hello( @FormParam("username") String name1) {
return "<html> " + "<title>" + "Hello Jersey" + "</title>"
+ "<body><h1>" + "Hello from helpdesk" + "</body></h1>" + "</html> ";
}
}
Und meine html-Seite ist
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<form action= "http://localhost:8080/helpdesk/rest/hello" method="POST">
Username: <input type="text" name="username">
<p>
<input type="submit" value="Submit">
</form>
</body>
</html>
Hier in der html-form, die ich genannt habe, den web-service ../rest/hello.
Ich erwähnte Beispiel aus http://www.vogella.com/articles/REST/
Kann jemand bitte sagen Sie mir, wie es zu tun?
Danke
können Sie versuchen, ändern Benutzername: <input type="text" name="Benutzername"> Username: <input type="text" name="name"> und sehen, ob es funktioniert
Versucht mit, der. Aber keine Veränderung.Tatsächlich wird beim anklicken auf "Absenden" - Buttons gibt es keine änderung in der url in browser wie .../erste.jsp?name=xxx etwas
Ihre app-server ausgeführt wird, richtig ?
ja, ich bin mit tomcat 7. Wenn ich die Ausführung von web-service als standalone-Anwendung ohne Parameter wie (entfernen @param und alle), xx.xx.xx.xx:8080/helpdesk/rest/hello, dann bekomme ich die Antwort als html-Seite, die ich wieder in die web-service-code
habe es ändern <input type="button" value="Absenden"> <input type="submit" value="Absenden"> wie ist das Formular nicht übermittelt werden
Versucht mit, der. Aber keine Veränderung.Tatsächlich wird beim anklicken auf "Absenden" - Buttons gibt es keine änderung in der url in browser wie .../erste.jsp?name=xxx etwas
Ihre app-server ausgeführt wird, richtig ?
ja, ich bin mit tomcat 7. Wenn ich die Ausführung von web-service als standalone-Anwendung ohne Parameter wie (entfernen @param und alle), xx.xx.xx.xx:8080/helpdesk/rest/hello, dann bekomme ich die Antwort als html-Seite, die ich wieder in die web-service-code
habe es ändern <input type="button" value="Absenden"> <input type="submit" value="Absenden"> wie ist das Formular nicht übermittelt werden
InformationsquelleAutor User007 | 2013-07-23
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sehe ich mehrere Probleme in Ihrem code. Erste ist die Art, wie Sie die Zuordnung der REST-Dienst-Pfad:
Ich glaube nicht, können Sie verketten, Ihr zwei Weg params, ich nehme an, es sein ein Tippfehler und erwarten, dass diese Zuordnung werden:
Zweite problem ist, mit dem html-code. Sie zu senden versuchen, den Namen als
FORM
param, das ist gut fürPOST
Anfragen und nicht für GET-Anforderungen.GET
Anforderung erwartet, dass die params in der URL oder Pfad als Sie erwarten, dass es in Ihrem REST-service-code.Jetzt haben Sie zwei Möglichkeiten um den code zu korrigieren. Entweder ändern Sie Ihre REST-service-code-Methode, um
POST
ausGET
. Oder Sie senden uns den Namen als Pfad param von Ihren HTML-schlagen Sie Ihren Dienst ordnungsgemäß und die parameter.Wenn Sie die Methode ändern, zu VERÖFFENTLICHEN, müssen Sie möglicherweise den parameter ändern
FormParam
stattPathParam
.Können Sie Ihre aktuellen code?
Ich habe bearbeitet der aktualisierte code. Ich denke, dass etwas schief geht in der Parameterübergabe nur. Firebug auch nicht helfen
Versuchen Sie ersetzen Ihre @Path("/hello/{name}") @Path("/hello"), wie Sie können nicht senden Sie den Namen als path-Parameter, um eine POST-Anfrage. Auch Sie müssen sich ändern Sie den Namen des param 'username' in deiner Signatur der Methode, d.h. public String hello( @FormParam("username")
Ich erhalte die gleiche Fehlermeldung, die Angegebene HTTP-Methode ist nicht zulässig, für die angeforderten Ressourcen. Ich habe bearbeitet der aktualisierte code
InformationsquelleAutor Juned Ahsan
In Ihrem code ändern Sie den Namen im Textfeld name.
Auch ändern Sie den Pfad über die Methode "@Path("/Hallo{name}")".
Versuchen Sie es mit diesem Pfad und die url im html-Format."@Path("/test")"
URL : /helpdesk/rest/hello/test
Hallo - ist der root-Klasse-finder
test - Methode finder im root-Klasse
Finden Sie den link "http://www.mastertheboss.com/resteasy/resteasy-tutorial-part-two-web-parameters" für den Unterschied zwischen Pfad param und param form
Aber wenn ich dies getan habe, bekomme ich 404 not found
Seine nicht über Ihre Klasse Namen. Seine alle über den Weg, den Namen Ihr geben. Statt Hallo geben Sie den Pfad-Namen "Hallo". So dass Ihre url so aussieht "xxx:8080/helpdesk/rest/hello/hello"
hab das aber gleiche problem besteht
Sind Ihr immer 404 wieder ?
InformationsquelleAutor Veera