Spring引导和休息服务(不支持405方法)

时间:2015-05-14 17:46:51

标签: rest spring-boot spring-ws

我创建了一个简单的Spring Boot应用程序并创建了Rest服务,当我尝试访问它时,我收到了错误

  

405 : Method Not Supported

不确定是什么问题。我检查了方法注释,并指定了method=RequestMethod.POST,我正在使用post方法提交表单。

这是我的代码。

@SpringBootApplication
public class SsFirstApplication {

    public static void main(String[] args) {
        SpringApplication.run(SsFirstApplication.class, args);

    }
}

休息服务

@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 ;
    }
}

我的index.html页面非常基本。

<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>

这是控制台日志

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

不确定我做错了什么。感谢您的回复。

1 个答案:

答案 0 :(得分:1)

我能够解决问题。我在主类中添加了以下注释 @EnableAutoConfiguration @ComponentScan。

现在我的主要课程看起来像这样。

C:\Program Files\R\R-3.2.0\library>chmod 777 rggobi
C:\Program Files\R\R-3.2.0\library>cd rggobi
C:\Program Files\R\R-3.2.0\library\rggobi>ls
DESCRIPTION  LICENSE  Meta       NEWS  data  help  libs
INDEX        MD5      NAMESPACE  R     demo  html
C:\Program Files\R\R-3.2.0\library\rggobi>chmod 777 libs
C:\Program Files\R\R-3.2.0\library\rggobi>cd libs
C:\Program Files\R\R-3.2.0\library\rggobi\libs>chmod 777 x64
C:\Program Files\R\R-3.2.0\library\rggobi\libs>chmod 777 i386
C:\Program Files\R\R-3.2.0\library\rggobi\libs>cd x64
C:\Program Files\R\R-3.2.0\library\rggobi\libs\x64>ls
rggobi.dll  symbols.rds
C:\Program Files\R\R-3.2.0\library\rggobi\libs\x64>chmod 777 rggobi.dll

我认为这些是由@SpringBootApplication自动添加的,但显然它们不是。感谢