项目启动成功,然后通过restclient去调用 http://127.0.0.1:8080/tiananServer/product/getProduct?id=1 时 后台日志:
7:00:18.511 [http-nio-8080-exec-1] DEBUG o.s.w.s.m.m.a.RequestMappingHandlerMapping -Looking up handler method for path /product/getProduct
2017-02-22 17:00:18.514 [http-nio-8080-exec-1] DEBUG o.s.w.s.m.m.a.RequestMappingHandlerMapping -Did not find handler method for [/product/getProduct]
2017-02-22 17:00:18.515 [http-nio-8080-exec-1] DEBUG o.s.web.servlet.handler.SimpleUrlHandlerMapping -Matching patterns for request [/product/getProduct] are [/**]
2017-02-22 17:00:18.516 [http-nio-8080-exec-1] DEBUG o.s.web.servlet.handler.SimpleUrlHandlerMapping -URI Template variables for request [/product/getProduct] are {}
2017-02-22 17:00:18.517 [http-nio-8080-exec-1] DEBUG o.s.web.servlet.handler.SimpleUrlHandlerMapping -Mapping [/product/getProduct] to HandlerExecutionChain with handler [ResourceHttpRequestHandler [locations=[ServletContext resource [/], class path resource [META-INF/resources/], class path resource [resources/], class path resource [static/], class path resource [public/]], resolvers=[org.springframework.web.servlet.resource.PathResourceResolver@b52b755]]] and 1 interceptor
2017-02-22 17:00:18.518 [http-nio-8080-exec-1] DEBUG org.springframework.web.servlet.DispatcherServlet -Last-Modified value for [/tiananServer/product/getProduct] is: -1
2017-02-22 17:00:18.519 [http-nio-8080-exec-1] DEBUG org.springframework.web.servlet.DispatcherServlet -Null ModelAndView returned to DispatcherServlet with name 'dispatcherServlet': assuming HandlerAdapter completed request handling
2017-02-22 17:00:18.520 [http-nio-8080-exec-1] DEBUG org.springframework.web.servlet.DispatcherServlet -Successfully completed request
2017-02-22 17:00:18.527 [http-nio-8080-exec-1] DEBUG org.springframework.web.servlet.DispatcherServlet -DispatcherServlet with name 'dispatcherServlet' processing GET request for [/tiananServer/error]
2017-02-22 17:00:18.527 [http-nio-8080-exec-1] DEBUG o.s.w.s.m.m.a.RequestMappingHandlerMapping -Looking up handler method for path /error
2017-02-22 17:00:18.530 [http-nio-8080-exec-1] DEBUG o.s.w.s.m.m.a.RequestMappingHandlerMapping -Returning handler method [public org.springframework.http.ResponseEntity> org.springframework.boot.autoconfigure.web.BasicErrorController.error(javax.servlet.http.HttpServletRequest)]
2017-02-22 17:00:18.530 [http-nio-8080-exec-1] DEBUG org.springframework.web.servlet.DispatcherServlet -Last-Modified value for [/tiananServer/error] is: -1
2017-02-22 17:00:18.652 [http-nio-8080-exec-1] DEBUG o.s.w.s.m.m.annotation.HttpEntityMethodProcessor -Written [{timestamp=Wed Feb 22 17:00:18 CST 2017, status=404, error=Not Found, message=No message available, path=/tiananServer/product/getProduct}] as "application/json;charset=UTF-8" using [org.springframework.http.converter.json.MappingJackson2HttpMessageConverter@5c8fc861]
2017-02-22 17:00:18.653 [http-nio-8080-exec-1] DEBUG org.springframework.web.servlet.DispatcherServlet -Null ModelAndView returned to DispatcherServlet with name 'dispatcherServlet': assuming HandlerAdapter completed request handling
2017-02-22 17:00:18.653 [http-nio-8080-exec-1] DEBUG org.springframework.web.servlet.DispatcherServlet -Successfully completed request
代码片段:
@Controller
@RequestMapping("/product")
public class ProductController {
@Autowired
private ProductService productService;
@RequestMapping(value = "/getProduct", method = RequestMethod.GET)
@ResponseBody
public String getProduct(Integer id) {
Product product = productService.findById(id.toString());
String jsonObject = JSONObject.toJSONString(product);
return jsonObject;
}
}
########################################
@Configuration
@ComponentScan(basePackages = { "com.tianan.controller" })
public class TokenCheckConfig extends WebMvcConfigurerAdapter {
@Override
public void addInterceptors(InterceptorRegistry registry) {
// 拦截API请求
registry.addInterceptor(new TokenCheckInterceptor()).addPathPatterns("/**");
super.addInterceptors(registry);
}
}
######################################################
@Component
public class SimpleCORSFilter implements Filter {
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain)
throws IOException, ServletException {
HttpServletResponse response = (HttpServletResponse) res;
response.setHeader("Access-Control-Allow-Origin", "*");// 来允许任何站点对该资源进行跨域请求
response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
response.setHeader("Access-Control-Max-Age", "3600");
response.setHeader("Access-Control-Allow-Headers", "x-requested-with");
chain.doFilter(req, res);
}
public void init(FilterConfig filterConfig) {
}
public void destroy() {
}
}
##################################################
@SpringBootApplication
@EnableAsync
@Import({ DynamicDataSourceRegister.class }) // 注册动态多数据源
@PropertySource(value = "classpath:datasource.properties")
public class BootApiApplication extends SpringBootServletInitializer {
private static Logger logger = Logger.getLogger(BootApiApplication.class);
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(BootApiApplication.class);
}
public static void main(String[] args) throws Exception {
SpringApplication.run(BootApiApplication.class, args);
logger.info("SpringBoot Start Success");
}
}
#########################################
需全部代码可联系本人,麻烦大侠帮忙看看下如何解决。