Spring应用程序中的区分大小写问题

时间:2017-03-09 10:05:22

标签: java spring docker tomcat8

我收到了一个Java Spring应用程序来容纳容器。我正在使用Tomcat8 / Java8基本映像。引导时,它无法部署并出现以下错误:

Caused by: org.springframework.context.annotation.ConflictingBeanDefinitionException: Annotation-specified bean name 'controller3P' for bean class [com.******.******.brand3P.controller.Controller3P] conflicts with existing, non-compatible bean definition of same name and class [com.******.******.Brand3P.controller.Controller3P]

这里的问题似乎是Spring发现了2个冲突的类,由“brand3P”和“Brand3P”区分。

但是,在源代码中,我找不到类“Brand3P”的引用,只有类“brand3P”。

有人能解释一下Spring在这里做了什么吗?

(很好,我是Ops,而不是Dev)

2 个答案:

答案 0 :(得分:1)

  1. 套餐名称应全部小写,请在此结帐oracle doc

  2. 包名称不包含在弹簧定义名称中。

  3. 我的猜测是有人在Git中更改了包名,因为git默认情况下不区分大小写,所以你会遇到这种情况,如果是这种情况,删除文件并再次创建将解决这个问题

  4. 嗨,Ops,请与Devs一起工作;)

答案 1 :(得分:0)

原来这是Jenkins构建的一个问题。代码已经改变(Brand3P - > brand3P),但旧的类名在Jenkins工作区中闲置,并被捆绑到Docker镜像中。

我们删除了工作区,重新运行了构建,一切都很好。