2015-10-07 21 views
0

访问某些控制器时遇到小问题。当我向/发送请求时,我得到一个HTTP 404,并且与movies路径相同。无法访问Spring Boot和Jersey应用程序中的某些控制器

package com.emo.server; 


@Configuration 
@ComponentScan({"com.emo.server", "com.emo.server.controller"}) 
@EnableAutoConfiguration 
public class App { 
    public static void main(String[] args) { 
    SpringApplication.run(App.class, args); 
} 


@Path("/") 
public String home() { 
    return "Hello World"; 
} 


@Configuration 
@EnableResourceServer 
protected static class ResourceServer extends ResourceServerConfigurerAdapter { 

    @Override 
    public void configure(HttpSecurity http) throws Exception { 
     // @formatter:off 
     http    
      .authorizeRequests().antMatchers("/movies").permitAll() 
      .and() 
      .authorizeRequests() 
      .antMatchers("/test") 
      .access("#oauth2.hasScope('read')"); 
     // @formatter:on 
    } 

    @Override 
    public void configure(ResourceServerSecurityConfigurer resources) throws Exception { 
     resources.resourceId("test"); 
    } 

} 


@Configuration 
@EnableAuthorizationServer 
protected static class OAuth2Config extends AuthorizationServerConfigurerAdapter { 

    @Autowired 
    private AuthenticationManager authenticationManager; 

    @Override 
    public void configure(AuthorizationServerEndpointsConfigurer endpoints) throws Exception { 
     endpoints.authenticationManager(authenticationManager); 
    } 

    @Override 
    public void configure(ClientDetailsServiceConfigurer clients) throws Exception { 
     // @formatter:off 
     clients.inMemory() 
       .withClient("my-trusted-client") 
       .authorizedGrantTypes("password", "authorization_code", "refresh_token", "implicit") 
       .authorities("ROLE_CLIENT", "ROLE_TRUSTED_CLIENT") 
       .scopes("read", "write", "trust") 
       .resourceIds("test") 
       .accessTokenValiditySeconds(60) 
       .and() 
       .withClient("my-client-with-secret") 
       .authorizedGrantTypes("client_credentials", "password") 
       .authorities("ROLE_CLIENT") 
       .scopes("read") 
       .resourceIds("test") 
       .secret("secret"); 
     // @formatter:on 
    } 

} 

的MovieController的一部分:

package com.emo.server.controller; 

@Component 
@Path("/movies") 
@Produces(MediaType.APPLICATION_JSON) 
public class MovieController { 

    private static final Logger LOGGER = LoggerFactory.getLogger(MovieController.class); 

    @GET 
    @Path("/") 
    public Response getMovies() { 
     System.out.println("Just a test after ...."); 
    } 

从这一个,我希望得到一个仅仅经过测试,但我得到了控制台的404

的部分:

> GET/HTTP/1.1 
> User-Agent: curl/7.35.0 
> Host: localhost:8080 
> Accept: */* 
> 
< HTTP/1.1 404 Not Found 
* Server Apache-Coyote/1.1 is not blacklisted 
< Server: Apache-Coyote/1.1 
< X-Content-Type-Options: nosniff 
< X-XSS-Protection: 1; mode=block 
< Cache-Control: no-cache, no-store, max-age=0, must-revalidate 
< Pragma: no-cache 
< Expires: 0 
< X-Frame-Options: DENY 
< X-Application-Context: application 
< Content-Type: application/json;charset=UTF-8 
< Transfer-Encoding: chunked 
< Date: Wed, 07 Oct 2015 19:15:20 GMT 
< 
* Connection #0 to host localhost left intact 
{"timestamp":1444245320491,"status":404,"error":"Not Found","message":"No message available","path":"/"} 

我的项目的图片:

enter image description here

我试图注册我的控制器与resourceConfig,但它发生的是同样的事情。

我可以访问一些端点像oauth/tokenhealth ...我用弹簧引导和球衣与Java的REST框架8.

+0

你是在混合Spring Boot和Jersey,因为你*知道你在做什么,对吗? – kryger

+0

hummm。我使用球衣作为REST-Framework。但我没有与泽西岛,与默认的REST-Spring(请求映射)尝试它,但我得到了同样的错误。 – emoleumassi

回答

1

试图改变自己的控制器注释是这样的:

@Controller 
@RequestMapping(value="/movies", produces="application/json) 
public class MovieController{ 

    @RequestMapping(value="/", method=RequestMethod.GET) 
    public MyResponseObject getMovies(){ 
     //you can return a POJO object if you are using a Jackson Mapper 
     return new MyResponseObject("foo", "bar"); 
    } 

} 
+0

不帮我。我想,这是球衣,我取消了所有球衣的依赖关系,没有任何东西。 – emoleumassi

+0

为什么不用xml config来试试这个? – AlbertoRuvel

+0

我卸下球衣,它现在可以工作。见这里:http://stackoverflow.com/questions/33026968/spring-boot-org-springframework-beans-factory-beancreationexception-could-not-a/33088873#33088873 – emoleumassi

相关问题