2016-05-10 5 views
0

Ich schaute auf die anderen Beiträge auf SO und habe nicht die Antwort gefunden.Spring Boot - Anfrage Methode 'POST' nicht unterstützt endlose Warnung

Ich erstellte eine Spring-Boot-Anwendung, die derzeit nur 3 GET Web-Services hat. Ich habe keine POST Methoden.

Wenn ich die Anwendung ausfühle, wird die Konsolenwarnung immer wieder durchlaufen.

o.s.web.servlet.PageNotFound: Request-Methode 'POST' nicht unterstützt

Ist das etwas, das ich besorgt sein? Oder zeigt es nur, weil ich keine POST Dienste implementiert habe?

Projektstruktur - Application.java Controller -> Manager/ManagerImpl -> DAO/DAOImpl.

Wenn ich den Webservice anrufe, liest er einfach von einer Oracle DB mit JDBC und spuckt sie wieder in JSON aus.

-Controller-Code -

@RestController 
@RequestMapping(value = "/forms") 
public class FormController { 

    @Autowired 
    private FormManager formManager; 

    @RequestMapping(value = "/{formId}", method = RequestMethod.GET) 
    public FormObj getFormForFormId(@PathVariable int formId) throws Exception { 

     FormObj forms = new FormObj(); 

     try { 
      forms = formManager.getFormForFormId(formId); 
     } catch (Exception e){ 
      throw new RemoteException("Error getting forms for formId- " + formId + " " + e.getMessage()); 
     } 

     return forms; 
    } 

    @RequestMapping(method = RequestMethod.GET) 
    public List<FormObj> getFormsforUserId(@RequestParam(value="userId", defaultValue="0") int userId) throws Exception { 

     List<FormObj> forms = new ArrayList<>(); 

     try { 
      forms = formManager.getFormForUserId(userId); 
     } catch (Exception e){ 
      throw new RemoteException("Error getting forms for UserId- " + userId + " " + e.getMessage()); 
     } 

     return forms; 
    } 

    @RequestMapping(value = "/time", method = RequestMethod.GET) 
    public long greeting(@RequestParam(value="name", defaultValue="World") String name) { 
     return Calendar.getInstance().getTimeInMillis(); 
    } 
} 
+1

Fügen Sie weitere Details zu Ihrer Projektstruktur und Controllern hinzu. Senden Sie eine Anfrage an eine bestimmte URL? –

+0

Gibt es bei Ihrem Client-Endcode Post-Anfragen? Es scheint von dem Fehler, dass es versucht, einige Post-Anfrage zu lösen, aber keine Methode zugeordnet wird. –

+0

@AliDehghani Ich habe mehr Details hinzugefügt. Ich sende keine Anfragen an eine URL. – Alan

Antwort

0

Wie die OP gefragt, bin Entsendung ich meine Antwort.

@RequestParam arbeitet mit GET und POST Methoden. Sie finden auch weitere Informationen unter this SO post.

Wie @zeroflagL kommentierte jemand ist machen eine POST-Anfrage. Meine beste Wette ist, dass die @RequestParam Schuld ist, was wahr ist, wie Sie sagen. Jetzt kann ich dir nicht genau sagen, warum oder was dort passiert, da ich nicht deine gesamte Codebasis habe, in die ich schauen kann (Spring hat viele bewegliche Teile, wie wir wissen). Vielleicht gibt es einen Client-End-Code, der ohne Ihr Wissen eine POST-Anfrage an das Backend sendet. Ich konzentriere mich mehr auf das Client-Ende, da das Problem, dem Sie gegenüberstehen, darin besteht, dass eine unbekannte POST-Anfrage an das Backend gestellt wird, die Spring keiner Methode zuordnen kann, und dies kann nur von der Client-Seite aus geschehen.

Die nächsten Schritte, die Sie könnten tun:

  1. die @RequestParam entfernen Nutzungen einen nach dem anderen und sehen, welche das Problem schaffen. Wie Sie sagten, als Sie das @RequestParam von der Methode greeting() entfernten, war der Fehler weg. Vielleicht ist das das Problem. Versuchen Sie aber auch mit den anderen Methoden, in diesem Fall getFormsForUserId() Methode.
  2. Sobald Sie die Methode haben, die das Problem verursacht, überprüfen Sie den entsprechenden Client-Endcode für diese Anfrage und sehen Sie, ob Sie dort eine Anomalie finden. Vielleicht ist das Problem doch da!

Hoffe, das hilft. :)

P.S. Wenn Sie den Grund für das Problem finden, lassen Sie mich. Fühlt sich gut an, neue Sachen zu lernen.

Verwandte Themen