Menu

Custom mapping fails on karaf start-up only

Help
Gabriel
2012-07-02
2013-05-02
  • Gabriel

    Gabriel - 2012-07-02

    Hi,

    I am trying to use dozer custom mapping in Karaf.
    I am using: Karaf 2.2.5, spring 3.0.6.RELEASE, spring-dm 1.2.1, dozer 5.3.1.

    I declare the custom mapping file in spring as following :
    /       <bean id="dozerConverterLoader"
                    class="org.apache.camel.converter.dozer.DozerTypeConverterLoader" />
            <bean id="mapper" class="org.dozer.DozerBeanMapper"  lazy-init="true">
              <property name="mappingFiles">
        <list>
          <value>vo_mapping.xml</value>
        </list>
        </property>

            </bean>/

    When I deploy the bundle in karaf it works fine, the problem comes after
    karaf start up. On first execution I got this error :

    2012-06-27 18:19:07,583 ERROR 477983&brandId=3
    - 2.8.2 Failed delivery for exchangeId:
    ID-u-server-4-guest-6-54973-1340792281569-4-19. Exhausted after delivery
    attempt: 1 caught: org.apache.camel.InvalidPayloadException: No body
    available of type: com.mycompany.MyClass but has value:
    com.mycompany.MyOtherClass@728fbbb4 of type:
    com.mycompany.MyOtherClass on: Message:
    com.mycompany.MyOtherClass@728fbbb4. Caused by: No type converter available
    to convert from type: com.mycompany.MyOtherClass to the required type:
    ccom.mycompany.MyClass with value
    com.mycompany.MyOtherClass@728fbbb4. Exchange[Message:
    com.mycompany.MyOtherClass@728fbbb4]. Caused by:
    [org.apache.camel.NoTypeConversionAvailableException - No type converter
    available to convert from type: com.mycompany.MyOtherClass to the required
    type: com.mycompany.MyClass with value com.mycompany.MyOtherClass@728fbbb4]
    org.apache.camel.InvalidPayloadException: No body available of type:
    com.mycompany.MyClass but has value: com.mycompany.MyOtherClass@728fbbb4 of
    type:com.mycompany.MyOtherClass on: Message:
    com.mycompany.MyOtherClass@728fbbb4. Caused by: No type converter available
    to convert from type: com.mycompany.MyOtherClass to the required type:
    com.mycompany.MyClass with value com.mycompany.MyOtherClass@728fbbb4.
    Exchange. Caused by:
    [org.apache.camel.NoTypeConversionAvailableException - No type converter
    available to convert from type: com.mycompany.MyOtherClass to the required
    type: com.mycompany.MyClass with value com.mycompany.MyOtherClass@728fbbb4]
            at
    org.apache.camel.impl.MessageSupport.getMandatoryBody(MessageSupport.java:102)
            at
    org.apache.camel.processor.ConvertBodyProcessor.process(ConvertBodyProcessor.java:58)
            at
    org.apache.camel.impl.converter.AsyncProcessorTypeConverter$ProcessorToAsyncProcessorBridge.process(AsyncProcessorTypeConverter.java:50)
            at
    org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:104)
            at
    org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:61)
            at
    org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:98)
            at
    org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:89)
            at
    org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:69)
            at
    org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:104)
            at
    org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:61)
            at
    org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:98)
            at
    org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:89)
            at
    org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:90)
            at
    org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:104)
            at
    org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:61)
            at
    org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:318)
            at
    org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:209)
            at
    org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:306)
            at
    org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:104)
            at
    org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:61)
            at
    org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:318)
            at
    org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:209)
            at
    org.apache.camel.spring.spi.TransactionErrorHandler.processByErrorHandler(TransactionErrorHandler.java:206)
            at
    org.apache.camel.spring.spi.TransactionErrorHandler$1.doInTransactionWithoutResult(TransactionErrorHandler.java:166)
            at
    org.springframework.transaction.support.TransactionCallbackWithoutResult.doInTransaction(TransactionCallbackWithoutResult.java:33)
            at
    org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:130)
            at
    org.apache.camel.spring.spi.TransactionErrorHandler.doInTransactionTemplate(TransactionErrorHandler.java:159)
            at
    org.apache.camel.spring.spi.TransactionErrorHandler.processInTransaction(TransactionErrorHandler.java:120)
            at
    org.apache.camel.spring.spi.TransactionErrorHandler.process(TransactionErrorHandler.java:94)
            at
    org.apache.camel.spring.spi.TransactionErrorHandler.process(TransactionErrorHandler.java:103)
            at
    org.apache.camel.processor.UnitOfWorkProcessor.process(UnitOfWorkProcessor.java:102)
            at
    org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:78)
            at
    org.apache.camel.processor.MulticastProcessor.doProcessSequential(MulticastProcessor.java:572)
            at
    org.apache.camel.processor.MulticastProcessor.doProcessSequential(MulticastProcessor.java:505)
            at
    org.apache.camel.processor.MulticastProcessor.process(MulticastProcessor.java:218)
            at
    org.apache.camel.processor.Splitter.process(Splitter.java:96)
            at
    org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:104)
            at
    org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:61)
            at
    org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:98)
            at
    org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:89)
            at
    org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:69)
            at
    org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:104)
            at
    org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:61)
            at
    org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:98)
            at
    org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:89)
            at
    org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:90)
            at
    org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:104)
            at
    org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:61)
            at
    org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:318)
            at
    org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:209)
            at
    org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:306)
            at
    org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:104)
            at
    org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:61)
            at
    org.apache.camel.processor.Pipeline.process(Pipeline.java:116)
            at
    org.apache.camel.processor.Pipeline.process(Pipeline.java:79)
            at
    org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:104)
            at
    org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:61)
            at
    org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:318)
            at
    org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:209)
            at
    org.apache.camel.spring.spi.TransactionErrorHandler.processByErrorHandler(TransactionErrorHandler.java:206)
            at
    org.apache.camel.spring.spi.TransactionErrorHandler$1.doInTransactionWithoutResult(TransactionErrorHandler.java:166)
            at
    org.springframework.transaction.support.TransactionCallbackWithoutResult.doInTransaction(TransactionCallbackWithoutResult.java:33)
            at
    org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:130)
            at
    org.apache.camel.spring.spi.TransactionErrorHandler.doInTransactionTemplate(TransactionErrorHandler.java:159)
            at
    org.apache.camel.spring.spi.TransactionErrorHandler.processInTransaction(TransactionErrorHandler.java:120)
            at
    org.apache.camel.spring.spi.TransactionErrorHandler.process(TransactionErrorHandler.java:94)
            at
    org.apache.camel.spring.spi.TransactionErrorHandler.process(TransactionErrorHandler.java:103)
            at
    org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:78)
            at
    org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:98)
            at
    org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:89)
            at
    org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:78)
            at
    org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:98)
            at
    org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:89)
            at
    org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:90)
            at
    org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:78)
            at
    org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:318)
            at
    org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:209)
            at
    org.apache.camel.processor.DefaultChannel.process(DefaultChannel.java:306)
            at
    org.apache.camel.processor.UnitOfWorkProcessor.process(UnitOfWorkProcessor.java:102)
            at
    org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:78)
            at
    org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:98)
            at
    org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:89)
            at
    org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:69)
            at
    org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:104)
            at
    org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:85)
            at
    org.apache.camel.component.http.CamelServlet.service(CamelServlet.java:90)
            at
    javax.servlet.http.HttpServlet.service(HttpServlet.java:806)
            at
    org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:547)
            at
    org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1359)
            at
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:366)
            at
    org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:109)
            at
    org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83)
            at
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:378)
            at
    org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:97)
            at
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:378)
            at
    org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:78)
            at
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:378)
            at
    org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54)
            at
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:378)
            at
    org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:35)
            at
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:378)
            at
    org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:177)
            at
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:378)
            at
    org.springframework.security.web.authentication.ui.DefaultLoginPageGeneratingFilter.doFilter(DefaultLoginPageGeneratingFilter.java:91)
            at
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:378)
            at
    org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:187)
            at
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:378)
            at
    org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105)
            at
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:378)
            at
    org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:79)
            at
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:378)
            at
    org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:167)
            at
    org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237)
            at
    org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
            at
    org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1330)
            at
    org.ops4j.pax.web.service.internal.WelcomeFilesFilter.doFilter(WelcomeFilesFilter.java:169)
            at
    org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1330)
            at
    org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:478)
            at
    org.ops4j.pax.web.service.jetty.internal.HttpServiceServletHandler.doHandle(HttpServiceServletHandler.java:70)
            at
    org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:119)
            at
    org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:483)
            at
    org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:227)
            at
    org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:941)
            at
    org.ops4j.pax.web.service.jetty.internal.HttpServiceContext.doHandle(HttpServiceContext.java:117)
            at
    org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:409)
            at
    org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:186)
            at
    org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:875)
            at
    org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117)
            at
    org.ops4j.pax.web.service.jetty.internal.JettyServerHandlerCollection.handle(JettyServerHandlerCollection.java:72)
            at
    org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:110)
            at
    org.eclipse.jetty.server.Server.handle(Server.java:345)
            at
    org.eclipse.jetty.server.HttpConnection.handleRequest(HttpConnection.java:441)
            at
    org.eclipse.jetty.server.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:919)
            at
    org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:582)
            at
    org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:218)
            at
    org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:51)
            at
    org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:586)
            at
    org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:44)
            at
    org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:598)
            at
    org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:533)
            at java.lang.Thread.run(Thread.java:679)
    Caused by: org.apache.camel.NoTypeConversionAvailableException: No type
    converter available to convert from type: com.mycompany.MyOtherClass to the
    required type: com.mycompany.MyClass with value
    com.mycompany.MyOtherClass@728fbbb4
            at
    org.apache.camel.impl.converter.BaseTypeConverterRegistry.mandatoryConvertTo(BaseTypeConverterRegistry.java:140)
            at
    org.apache.camel.core.osgi.OsgiTypeConverter.mandatoryConvertTo(OsgiTypeConverter.java:110)
            at
    org.apache.camel.impl.MessageSupport.getMandatoryBody(MessageSupport.java:100)
            … 140 more
    Caused by: org.dozer.MappingException: Unable to locate dozer mapping file
    in the classpath!
            at
    org.dozer.util.MappingUtils.throwMappingException(MappingUtils.java:93)
            at
    org.dozer.util.MappingValidator.validateURL(MappingValidator.java:63)
            at
    org.dozer.loader.CustomMappingsLoader.loadFromFiles(CustomMappingsLoader.java:101)
            at
    org.dozer.loader.CustomMappingsLoader.load(CustomMappingsLoader.java:56)
            at
    org.dozer.DozerBeanMapper.loadCustomMappings(DozerBeanMapper.java:210)
            at
    org.dozer.DozerBeanMapper.getMappingProcessor(DozerBeanMapper.java:185)
            at
    org.dozer.DozerBeanMapper.map(DozerBeanMapper.java:111)
            at
    org.apache.camel.converter.dozer.DozerTypeConverter.convertTo(DozerTypeConverter.java:46)
            at
    org.apache.camel.converter.dozer.DozerTypeConverter.convertTo(DozerTypeConverter.java:50)
            at
    org.apache.camel.impl.converter.BaseTypeConverterRegistry.doConvertTo(BaseTypeConverterRegistry.java:182)
            at
    org.apache.camel.impl.converter.BaseTypeConverterRegistry.mandatoryConvertTo(BaseTypeConverterRegistry.java:138)
            … 142 more

    It doesn't find the custom mapping file (vo_mapping.xml). I need to manually
    refresh the bundle, and then the file is loaded normally.

    I thought of a start-level problem but everything seems fine:
    spring-osgi-core is at 30, dozer-osgi is at 50, and my bundle is at 80.

    Would you have any idea that could explain this behavior?

    Also It seems I can't define a file: path to get the xml file, I got a Null
    Pointer Exception. But I suppose this is a question for dozer ML.
    (For example      <property name="mappingFiles">
        <list>
          <value>file:home/myHome/apapche-karaf-2.2.5/etc/vo_mapping.xml</value>
        </list>
    throws a exception).

    Thanks,
    Regards,
    Gabriel D'Halluin

     
  • Prabhat Mishra

    Prabhat Mishra - 2017-06-04

    Did You get Solution to this error..?

     

Log in to post a comment.