1.包底下有两个重名的controller造成的错误
Caused by: org.springframework.context.annotation.ConflictingBeanDefinitionException: Annotation-specified bean name 'templateController' for bean class [com.zbjk.lcs.bss.controller.api.template.TemplateController] conflicts with existing, non-compatible bean definition of same name and class [com.zbjk.lcs.bss.controller.api.infocenter.TemplateController]
SpringMVC的Controller 是采用类似键值对(key/value)的映射方式处理的。而当中的键,默认是用cotroller的类名(非全类名)作为键。这样,如果不同包下面的两个Contoller 重名的话,就会导致SpringMVC的容器管理中的controller map中的key重复了。
参考解释:参考解释
2.代码执行都没有问题,但是没有收到返回。
Cannot forward to error page for request [/api/advisor/queryadvisor/byrecord] as the response has already been committed. As a result, the response may have the wrong status code. If your application is running on WebSphere Application Server you may be able to resolve this problem by setting com.ibm.ws.webcontainer.invokeFlushAfterService to false
---问题:controller类用的是@Contoller注解,而且方法上面没写@ResponseBody注解,不是解析数据而是跳转页面,但是我又没有页面。使用@Responsebody标识的方法表示该方法的返回结果直接写入HTTP response body中,一般在异步获取数据时使用,在使用@RequestMapping后,返回值通常解析为跳转路径,加上@Responsebody后返回结果不会被解析为跳转路径,而是直接写入HTTP response body中。比如异步获取json数据,加上@Responsebody后,会直接返回json数据。或者是使用@RestController注解,不写@ResponseBody注解也可以
参考解释:参考解释
3.使用@Configuration和@Bean注解自己定义一个线程池。服务器启动的时候配置生效,但是在代码里面应用的时候,使用 AnnotationConfigApplicationContext 获取定义的实体bean报错
@Configuration
@EnableConfigurationProperties({ TaskThreadPoolConfig.class })
public class TaskExecutePool{
@Autowired
private TaskThreadPoolConfig config;
@Bean
public String getAsyncExecutor() {
ThreadPoolTaskExecutor executor =