Spring Boot-und Rest-Diensten (405 Methode nicht Unterstützt)
Habe ich eine einfache Spring-Boot-app und crated einen Rest-Dienst, und als ich versuchte, darauf zuzugreifen, bin ich immer Fehler
405 : Method Not Supported
Nicht sicher, was das Problem ist. Ich habe die Methode Anmerkungen und ich angegeben method=RequestMethod.POST
und ich bin ein Formular mit post-Methode.
Hier ist mein Code.
@SpringBootApplication
public class SsFirstApplication {
public static void main(String[] args) {
SpringApplication.run(SsFirstApplication.class, args);
}
}
Und der Rest-Service
@RestController
@RequestMapping("/api")
public class UserXAuthTokenController {
@Inject
private UserDetailsService userDetailsService;
@RequestMapping(value = "/authenticate",
method = RequestMethod.POST)
public UserDetails authorize(@RequestParam String username, @RequestParam String password) {
UserDetails details = this.userDetailsService.loadUserByUsername(username);
return details ;
}
}
Und meine index.html die Seite ist ziemlich einfach.
<html>
<body>
<h3>Welcome</h3>
<form action="/api/authenticate" method="post">
<div>
<div>
<label>User Name : </label>
<input type="text" name="username"/>
</div>
<div>
<label>Password : </label>
<input type="password" name="password"/>
</div>
<div>
<input type="submit" value="Submit"/>
</div>
</div>
</form>
</body>
</html>
Und hier ist die Konsole
2015-05-14 13:38:37.525 INFO 8124 --- [nio-9090-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring FrameworkServlet 'dispatcherServlet'
2015-05-14 13:38:37.525 INFO 8124 --- [nio-9090-exec-1] o.s.web.servlet.DispatcherServlet : FrameworkServlet 'dispatcherServlet': initialization started
2015-05-14 13:38:37.565 INFO 8124 --- [nio-9090-exec-1] o.s.web.servlet.DispatcherServlet : FrameworkServlet 'dispatcherServlet': initialization completed in 40 ms
2015-05-14 13:38:37.590 WARN 8124 --- [nio-9090-exec-1] o.s.web.servlet.PageNotFound : Request method 'POST' not supported
Nicht sicher, was ich falsch mache. Schätzen Sie Ihre Antwort.
- Bist du mit Antrieb? Es ist ein /Zuordnungen Endpunkt, der Antrieb gibt Ihnen das helfen könnte bei der diagnose des Problems. Wenn nicht, fügen Sie es zu Ihrem pom, dann nach ausführen der app gehen Sie zu Ihrer url/mappings und es sollte zeigen, alle die Zuordnungen, die Sie kennt. <Abhängigkeit> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-Antrieb</artifactId> </Abhängigkeit>
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich bin in der Lage, das Problem zu beheben. Hinzugefügt habe ich folgende Anmerkungen zu der main Klasse
@EnableAutoConfiguration
@ComponentScan.
Nun meine Hauptklasse sieht so aus.
Ich dachte, diese Hinzugefügt wurden, automatisch durch das @ - SpringBootApplication aber anscheinend sind Sie nicht. Dank
@ComponentScan
sieht nur Klassen im gleichen Paket wie IhrApplication
Klasse. Sehen cipley Antwort hier stackoverflow.com/questions/31318107/...