- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我刚刚创建了我的 Controller ,但是当我尝试启动我的应用程序时,我收到标题中提到的错误。
我花了一些时间摆弄我的 Controller ,但看不到任何重复的映射,因此不完全确定出了什么问题。下面是我的 Controller :
@Controller
public class CSPServerController {
@Autowired
ServerService serverService;
@Autowired
AuditLogService auditLogService;
@RequestMapping(name = "/servers", method = RequestMethod.GET)
@PreAuthorize("hasRole(T(com.nathanenglish.serverlldmanagementtool.config.GlobalConfig).RoleReadOnly)")
public String loadServers(Model model){
model.addAttribute("servers",serverService.getAll());
return "servers";
}
@RequestMapping(name = "/servers/new", method = RequestMethod.GET)
@PreAuthorize("hasRole(T(com.nathanenglish.serverlldmanagementtool.config.GlobalConfig).RoleEdit)")
public String newServer(Model model){
model.addAttribute("server", new Server());
model.addAttribute("auditLog", new AuditLog());
return "server";
}
@RequestMapping(name = "/servers/{id}", method = RequestMethod.GET)
@PreAuthorize("hasRole(T(com.nathanenglish.serverlldmanagementtool.config.GlobalConfig).RoleEdit)")
public String getServer(@PathVariable Long id, Model model){
model.addAttribute("server", serverService.getById(id));
model.addAttribute("auditLog", new AuditLog());
return "server";
}
@RequestMapping(name = "/servers/save", method = RequestMethod.POST)
@PreAuthorize("hasRole(T(com.nathanenglish.serverlldmanagementtool.config.GlobalConfig).RoleEdit)")
public String saveServer(Model model, @Valid Server server, @Valid AuditLog auditLog, BindingResult bindingResult){
if(bindingResult.hasErrors()){
return "server";
}
serverService.save(server);
auditLogService.save(auditLog);
return "redirect:/servers";
}
@RequestMapping(name = "/servers/delete/{id}", method = RequestMethod.GET)
@PreAuthorize("hasRole(T(com.nathanenglish.serverlldmanagementtool.config.GlobalConfig).RoleEdit)")
public String deleteServer(@PathVariable Long id, Model model){
serverService.deleteByID(id);
return "redirect:/servers";
}
}
错误日志:
*org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'requestMappingHandlerMapping' defined in class path resource [org/springframework/boot/autoconfigure/web/servlet/WebMvcAutoConfiguration$EnableWebMvcConfiguration.class]: Invocation of init method failed; nested exception is java.lang.IllegalStateException: Ambiguous mapping. Cannot map 'CSPServerController' method
public java.lang.String com.nathanenglish.serverlldmanagementtool.controller.CSPServerController.getServer(java.lang.Long,org.springframework.ui.Model)
to {[],methods=[GET]}: There is already 'CSPServerController' bean method
public java.lang.String com.nathanenglish.serverlldmanagementtool.controller.CSPServerController.newServer(org.springframework.ui.Model) mapped.
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1706) ~[spring-beans-5.0.6.RELEASE.jar:5.0.6.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:579) ~[spring-beans-5.0.6.RELEASE.jar:5.0.6.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:501) ~[spring-beans-5.0.6.RELEASE.jar:5.0.6.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:317) ~[spring-beans-5.0.6.RELEASE.jar:5.0.6.RELEASE]
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:228) ~[spring-beans-5.0.6.RELEASE.jar:5.0.6.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:315) ~[spring-beans-5.0.6.RELEASE.jar:5.0.6.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199) ~[spring-beans-5.0.6.RELEASE.jar:5.0.6.RELEASE]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:760) ~[spring-beans-5.0.6.RELEASE.jar:5.0.6.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:869) ~[spring-context-5.0.6.RELEASE.jar:5.0.6.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:550) ~[spring-context-5.0.6.RELEASE.jar:5.0.6.RELEASE]
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:140) ~[spring-boot-2.0.2.RELEASE.jar:2.0.2.RELEASE]
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:759) [spring-boot-2.0.2.RELEASE.jar:2.0.2.RELEASE]
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:395) [spring-boot-2.0.2.RELEASE.jar:2.0.2.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:327) [spring-boot-2.0.2.RELEASE.jar:2.0.2.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1255) [spring-boot-2.0.2.RELEASE.jar:2.0.2.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1243) [spring-boot-2.0.2.RELEASE.jar:2.0.2.RELEASE]
at com.nathanenglish.serverlldmanagementtool.ServerLldManagementToolApplication.main(ServerLldManagementToolApplication.java:12) [classes/:na]
Caused by: java.lang.IllegalStateException: Ambiguous mapping. Cannot map 'CSPServerController' method
public java.lang.String com.nathanenglish.serverlldmanagementtool.controller.CSPServerController.getServer(java.lang.Long,org.springframework.ui.Model)
to {[],methods=[GET]}: There is already 'CSPServerController' bean method
public java.lang.String com.nathanenglish.serverlldmanagementtool.controller.CSPServerController.newServer(org.springframework.ui.Model) mapped.
at org.springframework.web.servlet.handler.AbstractHandlerMethodMapping$MappingRegistry.assertUniqueMethodMapping(AbstractHandlerMethodMapping.java:580) ~[spring-webmvc-5.0.6.RELEASE.jar:5.0.6.RELEASE]
at org.springframework.web.servlet.handler.AbstractHandlerMethodMapping$MappingRegistry.register(AbstractHandlerMethodMapping.java:544) ~[spring-webmvc-5.0.6.RELEASE.jar:5.0.6.RELEASE]
at org.springframework.web.servlet.handler.AbstractHandlerMethodMapping.registerHandlerMethod(AbstractHandlerMethodMapping.java:265) ~[spring-webmvc-5.0.6.RELEASE.jar:5.0.6.RELEASE]
at org.springframework.web.servlet.handler.AbstractHandlerMethodMapping.lambda$detectHandlerMethods$1(AbstractHandlerMethodMapping.java:250) ~[spring-webmvc-5.0.6.RELEASE.jar:5.0.6.RELEASE]
at java.util.LinkedHashMap.forEach(LinkedHashMap.java:684) ~[na:1.8.0_171]
at org.springframework.web.servlet.handler.AbstractHandlerMethodMapping.detectHandlerMethods(AbstractHandlerMethodMapping.java:248) ~[spring-webmvc-5.0.6.RELEASE.jar:5.0.6.RELEASE]
at org.springframework.web.servlet.handler.AbstractHandlerMethodMapping.initHandlerMethods(AbstractHandlerMethodMapping.java:218) ~[spring-webmvc-5.0.6.RELEASE.jar:5.0.6.RELEASE]
at org.springframework.web.servlet.handler.AbstractHandlerMethodMapping.afterPropertiesSet(AbstractHandlerMethodMapping.java:188) ~[spring-webmvc-5.0.6.RELEASE.jar:5.0.6.RELEASE]
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping.afterPropertiesSet(RequestMappingHandlerMapping.java:129) ~[spring-webmvc-5.0.6.RELEASE.jar:5.0.6.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1765) ~[spring-beans-5.0.6.RELEASE.jar:5.0.6.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1702) ~[spring-beans-5.0.6.RELEASE.jar:5.0.6.RELEASE]
... 16 common frames omitted*
最佳答案
在您的所有请求映射中,您错误地使用了 name
而不是 value
@RequestMapping(name = "/servers/{id}", method = RequestMethod.GET)
应该是
@RequestMapping(value = "/servers/{id}", method = RequestMethod.GET)
因此,getServer 和 newServer 都试图映射到相同的 URL - GET/
,这是不允许的。
关于spring - 创建名为 'requestMappingHandlerMapping' Spring Boot 的 bean 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50569589/
我正在对我使用 mybatis 学到的东西进行回顾(以及给出的练习)。 我想要做的是获取一个带有简单图表的页面,该图表将在图表中获取公司员工列表。 但是当我尝试运行并单击一个链接(这将完成真正的工作)
我正在尝试注册 HandlerInterceptorAdapter例如,无论我做什么,它都不会被执行。 我试过复制 the example from the spring documentation没
我最近将 Spring 4 MVC Web 应用程序从 XML 配置转换为基于 java 的配置。这样做之后,所有 Controller 都被映射两次。我觉得这与组件扫描有关,但我无法弄清楚为什么。如
我有一个自定义 RequestMappingHandlerMapping 类,它将特殊注释解释为其映射标准的一部分。它被实例化为一个 bean: @Configuration @EnableWebMv
我似乎对如何将 RestController 添加到我的应用程序感到困惑。我很接近这里,但是当点击 url http://localhost:8080/rest/username/test 时,我在日
我正在尝试在我的 spring mvc Controller 中 Autowiring org.springframework.web.servlet.mvc.method.annotation.Re
更新:奇怪的是,只有当我用 Gradle 构建 jar 时才会抛出这个错误。 Maven 生成的 jar 运行良好!所以我目前正在探索我的 gradle 构建脚本/spring boot 配置是否以及
为了实现我们的请求映射版本控制解决方案,我实现了自己的 RequestMappingHandlerMapping 作为它的子类。我覆盖了 registerHandlerMethod() 和 looku
我们编写的 Web 应用程序需要双语 URL。我们之前使用过“plain Spring/Spring MVC”,但我们已经开始过渡到 Spring boot。 在我们较旧的 Spring 3.x/4.
我正在使用我想配置 RequestMappingHandlerMapping用于禁用useTrailingSlashMatch 。当我声明另一个RequestMappingHandlerMapping
我已经创建了一个自定义注解来对我的 API 进行版本控制。 运行应用程序时一切正常。 但是,当我尝试使用 MockMvc 测试我的 Controller 时,我编写的自定义 RequestMappin
尝试制作一些 spring 示例程序 - 不断出现错误 - 碰巧我的 Controller 无法处理/hello 请求。这是来自 log4j 的调试信息。 13:50:58,502 {TRAC
我在运行时收到以下错误。 Exception encountered during context initialization - cancelling refresh attempt: org.s
我有自己的 RequestMappingHandlerMapping 并且我正在使用 springfox-swagger-ui。添加自定义映射后,我无法在 http://localhost:8080/
我刚刚创建了我的 Controller ,但是当我尝试启动我的应用程序时,我收到标题中提到的错误。 我花了一些时间摆弄我的 Controller ,但看不到任何重复的映射,因此不完全确定出了什么问题。
我的 Spring Web MVC 项目外部有一个 Controller 加载器。 喜欢:Class myControllerClass = classLoader.loadClass("withfu
我正在将我的一个应用程序从 Spring 工具套件 IDE 移植到纯 Eclipse Java EE IDE。在这个过程中,我正在重命名一些包并更改为基于 Maven。然后所有 Controller
我有一个像这样的 spring MVC 配置类: @Configuration @EnableWebMvc public class WebConfig extends WebMvcConfigure
我构建了一个简单的 Spring MVC 应用程序,它可以在我的本地机器上完美运行。然而,将其上传到 Google App Engine 后,我收到了 HTTP 500 错误。 查看日志,我收到此 I
我正在使用 spring java 配置来创建一个网络应用。 当我在 tomcat 上运行时,它说找不到资源/myapp/myapp 在控制台输出中,我注意到以下内容。我不确定这是否会导致任何问题。
我是一名优秀的程序员,十分优秀!