Sorry for the noise, that was a stupid mistake of mine. Problem solved.

Babak

> Am 07.07.2021 um 09:26 schrieb Babak Vahdat <babak.vah...@swissonline.ch>:
> 
> Hi
> 
> Could this be a bug in the dependency chain required for a Camel SB App with 
> XML-DSL?
> 
> I get the following exception as trying to upgrade from 3.7.4 to 3.11.0 
> (running on JDK 11). This happens the same no matter if I run the tests or 
> try to boot up the App locally with "mvn spring-boot:run” command:
> 
> org.springframework.beans.factory.parsing.BeanDefinitionParsingException: 
> Configuration problem: Failed to import bean definitions from URL location 
> [classpath:spring/camel.xml]
> Offending resource: class path resource [spring/cxf.xml]; nested exception is 
> org.springframework.beans.factory.BeanDefinitionStoreException: Unexpected 
> exception parsing XML document from class path resource [spring/camel.xml]; 
> nested exception is java.lang.NoClassDefFoundError: 
> org/apache/camel/spi/ExpressionFactoryAware
>    at 
> org.springframework.beans.factory.parsing.FailFastProblemReporter.error(FailFastProblemReporter.java:72)
>  ~[spring-beans-5.3.8.jar:5.3.8]
>    at 
> org.springframework.beans.factory.parsing.ReaderContext.error(ReaderContext.java:119)
>  ~[spring-beans-5.3.8.jar:5.3.8]
>    at 
> org.springframework.beans.factory.parsing.ReaderContext.error(ReaderContext.java:104)
>  ~[spring-beans-5.3.8.jar:5.3.8]
>    at 
> org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.importBeanDefinitionResource(DefaultBeanDefinitionDocumentReader.java:240)
>  ~[spring-beans-5.3.8.jar:5.3.8]
>    at 
> org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.parseDefaultElement(DefaultBeanDefinitionDocumentReader.java:191)
>  ~[spring-beans-5.3.8.jar:5.3.8]
>    at 
> org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.parseBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:176)
>  ~[spring-beans-5.3.8.jar:5.3.8]
>    at 
> org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.doRegisterBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:149)
>  ~[spring-beans-5.3.8.jar:5.3.8]
>    at 
> org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.registerBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:96)
>  ~[spring-beans-5.3.8.jar:5.3.8]
>    at 
> org.springframework.beans.factory.xml.XmlBeanDefinitionReader.registerBeanDefinitions(XmlBeanDefinitionReader.java:511)
>  ~[spring-beans-5.3.8.jar:5.3.8]
>    at 
> org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:391)
>  ~[spring-beans-5.3.8.jar:5.3.8]
>    at 
> org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:338)
>  ~[spring-beans-5.3.8.jar:5.3.8]
>    at 
> org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:310)
>  ~[spring-beans-5.3.8.jar:5.3.8]
>    at 
> org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:188)
>  ~[spring-beans-5.3.8.jar:5.3.8]
>    at 
> org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:224)
>  ~[spring-beans-5.3.8.jar:5.3.8]
>    at 
> org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:195)
>  ~[spring-beans-5.3.8.jar:5.3.8]
>    at 
> org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.lambda$loadBeanDefinitionsFromImportedResources$0(ConfigurationClassBeanDefinitionReader.java:390)
>  ~[spring-context-5.3.8.jar:5.3.8]
>    at java.base/java.util.LinkedHashMap.forEach(LinkedHashMap.java:684) 
> ~[na:na]
>    at 
> org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitionsFromImportedResources(ConfigurationClassBeanDefinitionReader.java:354)
>  ~[spring-context-5.3.8.jar:5.3.8]
>    at 
> org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitionsForConfigurationClass(ConfigurationClassBeanDefinitionReader.java:156)
>  ~[spring-context-5.3.8.jar:5.3.8]
>    at 
> org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitions(ConfigurationClassBeanDefinitionReader.java:129)
>  ~[spring-context-5.3.8.jar:5.3.8]
>    at 
> org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions(ConfigurationClassPostProcessor.java:343)
>  ~[spring-context-5.3.8.jar:5.3.8]
>    at 
> org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanDefinitionRegistry(ConfigurationClassPostProcessor.java:247)
>  ~[spring-context-5.3.8.jar:5.3.8]
>    at 
> org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessors(PostProcessorRegistrationDelegate.java:311)
>  ~[spring-context-5.3.8.jar:5.3.8]
>    at 
> org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:112)
>  ~[spring-context-5.3.8.jar:5.3.8]
>    at 
> org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:746)
>  ~[spring-context-5.3.8.jar:5.3.8]
>    at 
> org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:564)
>  ~[spring-context-5.3.8.jar:5.3.8]
>    at 
> org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:145)
>  ~[spring-boot-2.5.1.jar:2.5.1]
>    at 
> org.springframework.boot.SpringApplication.refresh(SpringApplication.java:754)
>  ~[spring-boot-2.5.1.jar:2.5.1]
>    at 
> org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:434)
>  ~[spring-boot-2.5.1.jar:2.5.1]
>    at 
> org.springframework.boot.SpringApplication.run(SpringApplication.java:338) 
> ~[spring-boot-2.5.1.jar:2.5.1]
>    at 
> org.springframework.boot.SpringApplication.run(SpringApplication.java:1343) 
> ~[spring-boot-2.5.1.jar:2.5.1]
>    at 
> org.springframework.boot.SpringApplication.run(SpringApplication.java:1332) 
> ~[spring-boot-2.5.1.jar:2.5.1]
>    at com.foo.Application.main(Application.java:15) ~[classes/:na]
> Caused by: org.springframework.beans.factory.BeanDefinitionStoreException: 
> Unexpected exception parsing XML document from class path resource 
> [spring/camel.xml]; nested exception is java.lang.NoClassDefFoundError: 
> org/apache/camel/spi/ExpressionFactoryAware
>    at 
> org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:417)
>  ~[spring-beans-5.3.8.jar:5.3.8]
>    at 
> org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:338)
>  ~[spring-beans-5.3.8.jar:5.3.8]
>    at 
> org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:310)
>  ~[spring-beans-5.3.8.jar:5.3.8]
>    at 
> org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:188)
>  ~[spring-beans-5.3.8.jar:5.3.8]
>    at 
> org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:224)
>  ~[spring-beans-5.3.8.jar:5.3.8]
>    at 
> org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.importBeanDefinitionResource(DefaultBeanDefinitionDocumentReader.java:234)
>  ~[spring-beans-5.3.8.jar:5.3.8]
>    ... 29 common frames omitted
> Caused by: java.lang.NoClassDefFoundError: 
> org/apache/camel/spi/ExpressionFactoryAware
>    at java.base/java.lang.ClassLoader.defineClass1(Native Method) ~[na:na]
>    at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1017) 
> ~[na:na]
>    at 
> java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:174)
>  ~[na:na]
>    at 
> java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:800)
>  ~[na:na]
>    at 
> java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:698)
>  ~[na:na]
>    at 
> java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:621)
>  ~[na:na]
>    at 
> java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:579)
>  ~[na:na]
>    at 
> java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
>  ~[na:na]
>    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522) ~[na:na]
>    at java.base/java.lang.ClassLoader.defineClass1(Native Method) ~[na:na]
>    at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1017) 
> ~[na:na]
>    at 
> java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:174)
>  ~[na:na]
>    at 
> java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:800)
>  ~[na:na]
>    at 
> java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:698)
>  ~[na:na]
>    at 
> java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:621)
>  ~[na:na]
>    at 
> java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:579)
>  ~[na:na]
>    at 
> java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
>  ~[na:na]
>    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522) ~[na:na]
>    at javax.xml.bind.ModuleUtil.findFirstByJaxbIndex(ModuleUtil.java:101) 
> ~[jakarta.xml.bind-api-2.3.3.jar:2.3.3]
>    at javax.xml.bind.ModuleUtil.getClassesFromContextPath(ModuleUtil.java:63) 
> ~[jakarta.xml.bind-api-2.3.3.jar:2.3.3]
>    at javax.xml.bind.ContextFinder.find(ContextFinder.java:280) 
> ~[jakarta.xml.bind-api-2.3.3.jar:2.3.3]
>    at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:478) 
> ~[jakarta.xml.bind-api-2.3.3.jar:2.3.3]
>    at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:435) 
> ~[jakarta.xml.bind-api-2.3.3.jar:2.3.3]
>    at 
> org.apache.camel.xml.jaxb.DefaultModelJAXBContextFactory.newJAXBContext(DefaultModelJAXBContextFactory.java:39)
>  ~[camel-xml-jaxb-3.11.0.jar:3.11.0]
>    at 
> org.apache.camel.spring.xml.handler.CamelNamespaceHandler.getJaxbContext(CamelNamespaceHandler.java:187)
>  ~[camel-spring-xml-3.11.0.jar:3.11.0]
>    at 
> org.apache.camel.spring.xml.handler.CamelNamespaceHandler$CamelContextBeanDefinitionParser.doParse(CamelNamespaceHandler.java:379)
>  ~[camel-spring-xml-3.11.0.jar:3.11.0]
>    at 
> org.springframework.beans.factory.xml.AbstractSingleBeanDefinitionParser.parseInternal(AbstractSingleBeanDefinitionParser.java:88)
>  ~[spring-beans-5.3.8.jar:5.3.8]
>    at 
> org.springframework.beans.factory.xml.AbstractBeanDefinitionParser.parse(AbstractBeanDefinitionParser.java:63)
>  ~[spring-beans-5.3.8.jar:5.3.8]
>    at 
> org.springframework.beans.factory.xml.NamespaceHandlerSupport.parse(NamespaceHandlerSupport.java:74)
>  ~[spring-beans-5.3.8.jar:5.3.8]
>    at 
> org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1391)
>  ~[spring-beans-5.3.8.jar:5.3.8]
>    at 
> org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1371)
>  ~[spring-beans-5.3.8.jar:5.3.8]
>    at 
> org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.parseBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:179)
>  ~[spring-beans-5.3.8.jar:5.3.8]
>    at 
> org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.doRegisterBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:149)
>  ~[spring-beans-5.3.8.jar:5.3.8]
>    at 
> org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.registerBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:96)
>  ~[spring-beans-5.3.8.jar:5.3.8]
>    at 
> org.springframework.beans.factory.xml.XmlBeanDefinitionReader.registerBeanDefinitions(XmlBeanDefinitionReader.java:511)
>  ~[spring-beans-5.3.8.jar:5.3.8]
>    at 
> org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:391)
>  ~[spring-beans-5.3.8.jar:5.3.8]
>    ... 34 common frames omitted
> Caused by: java.lang.ClassNotFoundException: 
> org.apache.camel.spi.ExpressionFactoryAware
>    at 
> java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581)
>  ~[na:na]
>    at 
> java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
>  ~[na:na]
>    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522) ~[na:na]
>    ... 70 common frames omitted
> 
> 
> The relevant dependencies I’ve got in place are:
> 
> <properties>
> 
>  <!-- Dependency Versions -->
>  <camel-version>3.11.0</camel-version>
>  <cxf-version>3.4.4</cxf-version>
>  <spring-boot-version>2.5.1</spring-boot-version>
>  <xercesImpl-version>2.12.1</xercesImpl-version>
> 
> ...
> </properties>
> ...
> <dependencyManagement>
>  <dependencies>
> 
>    <!-- Spring Boot BOM -->
>    <dependency>
>      <groupId>org.springframework.boot</groupId>
>      <artifactId>spring-boot-dependencies</artifactId>
>      <version>${spring-boot-version}</version>
>      <type>pom</type>
>      <scope>import</scope>
>    </dependency>
> 
>    <!-- Camel BOM -->
>    <dependency>
>      <groupId>org.apache.camel.springboot</groupId>
>      <artifactId>camel-spring-boot-bom</artifactId>
>      <version>${camel-version}</version>
>      <type>pom</type>
>      <scope>import</scope>
>    </dependency>
>  </dependencies>
> </dependencyManagement>
> 
> <dependencies>
> 
>  <!-- Spring Boot -->
>  <dependency>
>    <groupId>org.springframework.boot</groupId>
>    <artifactId>spring-boot-starter-web</artifactId>
>    <exclusions>
>      <exclusion>
>        <groupId>org.springframework.boot</groupId>
>        <artifactId>spring-boot-starter-tomcat</artifactId>
>      </exclusion>
>    </exclusions>
>  </dependency>
>  <dependency>
>    <groupId>org.springframework.boot</groupId>
>    <artifactId>spring-boot-starter-undertow</artifactId>
>  </dependency>
>  <dependency>
>    <groupId>org.springframework.boot</groupId>
>    <artifactId>spring-boot-starter-actuator</artifactId>
>  </dependency>
> 
>  <!-- Camel Spring Boot -->
>  <dependency>
>    <groupId>org.apache.camel.springboot</groupId>
>    <artifactId>camel-cxf-starter</artifactId>
>    <version>${cxf-version}</version>
>  </dependency>
>  <dependency>
>    <groupId>org.apache.camel.springboot</groupId>
>    <artifactId>camel-direct-starter</artifactId>
>  </dependency>
>  <dependency>
>    <groupId>org.apache.camel.springboot</groupId>
>    <artifactId>camel-file-starter</artifactId>
>  </dependency>
>  <dependency>
>    <groupId>org.apache.camel.springboot</groupId>
>    <artifactId>camel-http-starter</artifactId>
>  </dependency>
>  <dependency>
>    <groupId>org.apache.camel.springboot</groupId>
>    <artifactId>camel-log-starter</artifactId>
>  </dependency>
>  <dependency>
>    <groupId>org.apache.camel.springboot</groupId>
>    <artifactId>camel-spring-boot-xml-starter</artifactId>
>  </dependency>
> 
>  <!-- CXF Spring Boot -->
>  <dependency>
>    <groupId>org.apache.cxf</groupId>
>    <artifactId>cxf-spring-boot-starter-jaxws</artifactId>
>    <version>${cxf-version}</version>
>  </dependency>
> 
>  <!-- CXF -->
>  <dependency>
>    <groupId>org.apache.cxf</groupId>
>    <artifactId>cxf-rt-ws-security</artifactId>
>    <version>${cxf-version}</version>
>  </dependency>
> 
>  <!-- Testing -->
>  <dependency>
>    <groupId>org.springframework.boot</groupId>
>    <artifactId>spring-boot-starter-test</artifactId>
>    <scope>test</scope>
>  </dependency>
>  <dependency>
>    <groupId>org.apache.camel</groupId>
>    <artifactId>camel-test-spring-junit5</artifactId>
>    <scope>test</scope>
>  </dependency>
>  <dependency>
>    <groupId>org.awaitility</groupId>
>    <artifactId>awaitility</artifactId>
>    <scope>test</scope>
>  </dependency>
>  <dependency>
>    <groupId>org.xmlunit</groupId>
>    <artifactId>xmlunit-matchers</artifactId>
>    <scope>test</scope>
>  </dependency>
>  <dependency>
>    <groupId>xerces</groupId>
>    <artifactId>xercesImpl</artifactId>
>    <version>${xercesImpl-version}</version>
>    <scope>test</scope>
>  </dependency>
>  <dependency>
>    <groupId>org.apache.camel.springboot</groupId>
>    <artifactId>camel-servlet-starter</artifactId>
>    <version>${camel-version}</version>
>    <scope>test</scope>
>  </dependency>
> </dependencies>
> 
> And with that I think I have the following required change in place.
> 
> https://camel.apache.org/manual/latest/camel-3x-upgrade-guide-3_9.html#_modularized_camel_spring
>  
> <https://camel.apache.org/manual/latest/camel-3x-upgrade-guide-3_9.html#_modularized_camel_spring>
> 
> Thanks, Babak

Reply via email to