我正在尝试使用Spring MVC 4.0.4-RELEASE构建REST-Api。该应用程序包含多个maven模块,如域,服务等......
当我在浏览器中运行webapp并向api / test发出请求时,我希望将String作为响应。但是我总是在浏览器中使用http状态200进行响应,以及卷曲。但它也没有在我的类路径中与JSON和Jackson2一起工作。
似乎ping方法永远不会被调用,但请求处理似乎没问题。?!
DEBUG o.s.w.s.DispatcherServlet - DispatcherServlet with name 'dispatcher' processing GET request for [/api/test]
DEBUG o.s.w.s.m.m.a.RequestMappingHandlerMapping - Looking up handler method for path /test
DEBUG o.s.w.s.m.m.a.RequestMappingHandlerMapping - Returning handler method [public java.lang.String api.resource.TestResource.ping()]
DEBUG o.s.w.s.DispatcherServlet - Last-Modified value for [/api/test] is: -1
DEBUG o.s.w.s.DispatcherServlet - Successfully completed request
还有一个处理程序拦截器,它永远不会被调用,因为看起来春天并没有“跳跃”#34;进入处理程序方法......
这是我的@Controller的代码和Web配置:
@Controller
public class TestResource {
@ResponseBody
@RequestMapping(value = "/test", method = RequestMethod.GET)
public String ping() {
LOG.debug("Request received.");
final Account account = new Account.Builder("m@m.de", "123456", new Date(), new Role.Builder("Role_USER").build()).build();
return account.toString();
}
}
@Configuration
@EnableWebMvc
@ComponentScan(basePackages = { "api.resource" })
public class ApiConfig extends WebMvcConfigurerAdapter {
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new RequestTimeProcessingInterceptor());
super.addInterceptors(registry);
}
}
public class ApiInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
@Override
protected Class<?>[] getRootConfigClasses() {
return new Class<?>[] { EventingConfig.class, RepositoryConfig.class, MailConfig.class, ServiceConfig.class };
}
@Override
protected Class<?>[] getServletConfigClasses() {
return new Class<?>[] { ApiConfig.class };
}
@Override
protected String[] getServletMappings() {
return new String[] { "/" };
}
@Override
protected Filter[] getServletFilters() {
CharacterEncodingFilter characterEncodingFilter = new CharacterEncodingFilter();
characterEncodingFilter.setEncoding("UTF-8");
return new Filter[] { characterEncodingFilter };
}
}
这对我来说似乎是一个有效的配置,因为通过maven和嵌入式tomcat7或Eclpse WTP运行应用程序没有问题。 我想这是一个非常简单的解决方案,但不幸的是我现在无法看到它..
所以我很感激任何想法!
谢谢!