Ein Fehler tritt bei ValidationMessageSource beim Starten des Feder -Tomcat auf
Posted: 23 Feb 2025, 14:00
zu behebungsberechtigt < /h3>
Ich habe validierungsbezogene Beans in Spring-MVC.xml und Spring-MVC-rest.xml definiert, aber ein Fehler im Zusammenhang mit ValidationMessagesource tritt beim Starten von Tomcat auf . < /p>
Ich habe validierungsbezogene Beans in Spring-MVC.xml und Spring-MVC-rest.xml definiert, aber ein Fehler im Zusammenhang mit ValidationMessagesource tritt beim Starten von Tomcat auf . < /p>
Code: Select all
Caused by: org.springframework.beans.PropertyBatchUpdateException: Failed properties: Property 'validationMessageSource' threw exception
< /code>
Ich bin mit dem Frühling nicht sehr vertraut, daher würde ich mich über fachkundige Erkenntnisse freuen. Tomcat: 10
Java: 21
maven: 3.9.9
Framework: Terasoluna 5.9
Projektstruktur: Multi-Module (Domain, Web, Web, env) < /p>
Projektstruktur (Extrakt) < /h3>
domain
env
web
|-src/main
└resources
└i18n
└api
└api-parameter-xxx.properties
└web
└validation-messages-xxx.properties
└application-xxx.properties
└META-INF
└spring
└applicatonContext.xml
└spring-mvc.xml
└spring-mvc-rest.xml
└spring-security.xml
└webapp
└META-INF
└resources
└WEB-INF
└web.xml
< /code>
spring-mvc.xml, Spring-MVC-rest.xml (extrahieren) < /h3>
...
[*]
...
< /code>
{Benutzerdefinierte Klasse, die localValidatorFactoryBean} erweitert wird.
contextConfigLocation
classpath*:META-INF/spring/applicationContext.xml
classpath*:META-INF/spring/spring-security.xml
apiServlet
org.springframework.web.servlet.DispatcherServlet
throwExceptionIfNoHandlerFound
true
contextConfigLocation
classpath*:META-INF/spring/spring-mvc-rest.xml
1
...
apiServlet
/api/*
appServlet
org.springframework.web.servlet.DispatcherServlet
throwExceptionIfNoHandlerFound
true
contextConfigLocation
classpath*:META-INF/spring/spring-mvc.xml
2
...
appServlet
/
< /code>
Versucht, < /h3>
POM.XML
Referenz: Spring Framework Ausgabe #15099 < /li zu beheben. < /li >
< /ol>
org.hibernate.validator
hibernate-validator
8.0.1.Final
< /code>
Möglicherweise gibt es Kompatibilitätsprobleme mit dem Hibernate -Validator. > Ich habe die MessageSource-Bean-Namen in Spring-MVC.xml und Spring-MVC-rest.xml in MessageSourceWeb bzw. MessageSourcerest geändert.
< /ol>
→ Fehler: < /p>
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'messageResolver': Unsatisfied dependency expressed through field 'messageSourceInject': No qualifying bean of type 'org.springframework.context.MessageSource' available: expected single matching bean but found 2: messageSourceRest,messageSourceWeb
< /code>
Es scheint, dass Messageresolver eine einzige Bean nicht beheben kann. Ich erwartete separate DI -Container für Web und Ruhe, könnte aber beide im selben DI -Container sein? Spring-mvc.xml und Spring-MVC-rest.xml, und es wurde nur in applicationContext.xml definiert, aber die Fehlermeldung änderte sich nicht: < /li>
< /ol>