JIRA

  • Log In Access more options
    • Online Help
    • GreenHopper Help
    • Agile Answers
    • Use Agile By Default
    • Keyboard Shortcuts
    • About JIRA
    • JIRA Credits
    • What’s New
  • Dashboards Access more options (Alt+d)
  • Projects Access more options (Alt+p)
  • Issues Access more options (Alt+i)
  • Agile Access more options (Alt+g)
  • Create Issue
  • Mule
  • MULE-5926

Autotransformer cannot handle situation where two or more JaxbContexts are defined

  • Agile Board
  • More Actions
  • Views
    • XML
    • Word
    • Printable

Details

  • Type: Bug Bug
  • Status: Open Open
  • Priority: Major Major
  • Resolution: Unresolved
  • Affects Version/s: 3.1.2, 3.2.1
  • Fix Version/s: None
  • Component/s: Core: Transformers, Transport: HTTP(S) / Jetty
  • Labels:
    • auto-transformer
    • jaxb
  • Environment:

    windows 7 64-bit, linux

  • User impact:
    Medium
  • Configuration:
    Hide

    <mulexml:jaxb-context name="firstJaxb" packageNames="org.example.first" />
    <mulexml:jaxb-context name="secondJaxb" packageNames="org.example.second" />

    <http:outbound-endpoint address="${example.http.restService}" exchange-pattern="request-response" />

    <auto-transformer returnClass="org.example.first.classToTransformTo" />

    Show
    <mulexml:jaxb-context name="firstJaxb" packageNames="org.example.first" /> <mulexml:jaxb-context name="secondJaxb" packageNames="org.example.second" /> <http:outbound-endpoint address="${example.http.restService}" exchange-pattern="request-response" /> <auto-transformer returnClass="org.example.first.classToTransformTo" />
  • Log Output:
    Hide
    ********************************************************************************
    Message : More than one object of type class javax.xml.bind.JAXBContext registered but only one expected.
    Type : org.mule.api.registry.RegistrationException
    Code : MULE_ERROR--2
    JavaDoc : http://www.mulesoft.org/docs/site/current3/apidocs/org/mule/api/registry/RegistrationException.html
    ********************************************************************************
    Exception stack is:
    1. More than one object of type class javax.xml.bind.JAXBContext registered but only one expected. (org.mule.api.registry.RegistrationException)
      org.mule.registry.AbstractRegistry:168 (http://www.mulesoft.org/docs/site/current3/apidocs/org/mule/api/registry/RegistrationException.html)
    ********************************************************************************
    Root Exception stack trace:
    org.mule.api.registry.RegistrationException: More than one object of type class javax.xml.bind.JAXBContext registered but only one expected.
    at org.mule.registry.AbstractRegistry.lookupObject(AbstractRegistry.java:168)
    at org.mule.registry.AbstractRegistryBroker.lookupObject(AbstractRegistryBroker.java:134)
    at org.mule.registry.MuleRegistryHelper.lookupObject(MuleRegistryHelper.java:671)
    at org.mule.config.transformer.AbstractAnnotatedTransformerArgumentResolver.resolve(AbstractAnnotatedTransformerArgumentResolver.java:76)
    at org.mule.module.xml.transformer.jaxb.JAXBTransformerResolver.resolve(JAXBTransformerResolver.java:76)
    at org.mule.registry.MuleRegistryHelper.resolveTransformer(MuleRegistryHelper.java:265)
    at org.mule.registry.MuleRegistryHelper.lookupTransformer(MuleRegistryHelper.java:235)
    at org.mule.DefaultMuleMessage.getPayload(DefaultMuleMessage.java:346)
    at org.mule.DefaultMuleMessage.getPayload(DefaultMuleMessage.java:304)
    at org.mule.transformer.simple.AutoTransformer.transformMessage(AutoTransformer.java:47)
    at org.mule.transformer.AbstractMessageTransformer.transform(AbstractMessageTransformer.java:145)
    at org.mule.transformer.AbstractMessageTransformer.transform(AbstractMessageTransformer.java:93)
    at org.mule.DefaultMuleMessage.applyAllTransformers(DefaultMuleMessage.java:1387)
    at org.mule.DefaultMuleMessage.applyTransformers(DefaultMuleMessage.java:1348)
    at org.mule.DefaultMuleMessage.applyTransformers(DefaultMuleMessage.java:1340)
    at org.mule.transformer.AbstractTransformer.process(AbstractTransformer.java:119)
    at org.mule.processor.AbstractFilteringMessageProcessor.process(AbstractFilteringMessageProcessor.java:44)
    at org.mule.processor.AbstractFilteringMessageProcessor.process(AbstractFilteringMessageProcessor.java:44)
    at org.mule.processor.AsyncInterceptingMessageProcessor.process(AsyncInterceptingMessageProcessor.java:90)
    at org.mule.interceptor.AbstractEnvelopeInterceptor.process(AbstractEnvelopeInterceptor.java:55)
    at org.mule.processor.AbstractFilteringMessageProcessor.process(AbstractFilteringMessageProcessor.java:44)
    at org.mule.construct.AbstractPipeline$1.process(AbstractPipeline.java:138)
    at org.mule.transport.AbstractMessageReceiver.routeMessage(AbstractMessageReceiver.java:195)
    at org.mule.transport.AbstractMessageReceiver.routeMessage(AbstractMessageReceiver.java:163)
    at org.mule.transport.AbstractMessageReceiver.routeMessage(AbstractMessageReceiver.java:150)
    at org.mule.transport.http.HttpMessageReceiver$HttpWorker.doRequest(HttpMessageReceiver.java:299)
    at org.mule.transport.http.HttpMessageReceiver$HttpWorker.processRequest(HttpMessageReceiver.java:258)
    at org.mule.transport.http.HttpMessageReceiver$HttpWorker.run(HttpMessageReceiver.java:163)
    at org.mule.work.WorkerContext.run(WorkerContext.java:310)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)

    ********************************************************************************
    Show
    ******************************************************************************** Message : More than one object of type class javax.xml.bind.JAXBContext registered but only one expected. Type : org.mule.api.registry.RegistrationException Code : MULE_ERROR--2 JavaDoc : http://www.mulesoft.org/docs/site/current3/apidocs/org/mule/api/registry/RegistrationException.html ******************************************************************************** Exception stack is: 1. More than one object of type class javax.xml.bind.JAXBContext registered but only one expected. (org.mule.api.registry.RegistrationException)   org.mule.registry.AbstractRegistry:168 (http://www.mulesoft.org/docs/site/current3/apidocs/org/mule/api/registry/RegistrationException.html) ******************************************************************************** Root Exception stack trace: org.mule.api.registry.RegistrationException: More than one object of type class javax.xml.bind.JAXBContext registered but only one expected. at org.mule.registry.AbstractRegistry.lookupObject(AbstractRegistry.java:168) at org.mule.registry.AbstractRegistryBroker.lookupObject(AbstractRegistryBroker.java:134) at org.mule.registry.MuleRegistryHelper.lookupObject(MuleRegistryHelper.java:671) at org.mule.config.transformer.AbstractAnnotatedTransformerArgumentResolver.resolve(AbstractAnnotatedTransformerArgumentResolver.java:76) at org.mule.module.xml.transformer.jaxb.JAXBTransformerResolver.resolve(JAXBTransformerResolver.java:76) at org.mule.registry.MuleRegistryHelper.resolveTransformer(MuleRegistryHelper.java:265) at org.mule.registry.MuleRegistryHelper.lookupTransformer(MuleRegistryHelper.java:235) at org.mule.DefaultMuleMessage.getPayload(DefaultMuleMessage.java:346) at org.mule.DefaultMuleMessage.getPayload(DefaultMuleMessage.java:304) at org.mule.transformer.simple.AutoTransformer.transformMessage(AutoTransformer.java:47) at org.mule.transformer.AbstractMessageTransformer.transform(AbstractMessageTransformer.java:145) at org.mule.transformer.AbstractMessageTransformer.transform(AbstractMessageTransformer.java:93) at org.mule.DefaultMuleMessage.applyAllTransformers(DefaultMuleMessage.java:1387) at org.mule.DefaultMuleMessage.applyTransformers(DefaultMuleMessage.java:1348) at org.mule.DefaultMuleMessage.applyTransformers(DefaultMuleMessage.java:1340) at org.mule.transformer.AbstractTransformer.process(AbstractTransformer.java:119) at org.mule.processor.AbstractFilteringMessageProcessor.process(AbstractFilteringMessageProcessor.java:44) at org.mule.processor.AbstractFilteringMessageProcessor.process(AbstractFilteringMessageProcessor.java:44) at org.mule.processor.AsyncInterceptingMessageProcessor.process(AsyncInterceptingMessageProcessor.java:90) at org.mule.interceptor.AbstractEnvelopeInterceptor.process(AbstractEnvelopeInterceptor.java:55) at org.mule.processor.AbstractFilteringMessageProcessor.process(AbstractFilteringMessageProcessor.java:44) at org.mule.construct.AbstractPipeline$1.process(AbstractPipeline.java:138) at org.mule.transport.AbstractMessageReceiver.routeMessage(AbstractMessageReceiver.java:195) at org.mule.transport.AbstractMessageReceiver.routeMessage(AbstractMessageReceiver.java:163) at org.mule.transport.AbstractMessageReceiver.routeMessage(AbstractMessageReceiver.java:150) at org.mule.transport.http.HttpMessageReceiver$HttpWorker.doRequest(HttpMessageReceiver.java:299) at org.mule.transport.http.HttpMessageReceiver$HttpWorker.processRequest(HttpMessageReceiver.java:258) at org.mule.transport.http.HttpMessageReceiver$HttpWorker.run(HttpMessageReceiver.java:163) at org.mule.work.WorkerContext.run(WorkerContext.java:310) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source) ********************************************************************************
  • Similar Issues:
    None

Description

If you define two or more JaxbContexts in mule xml config and try to use autotransformer to unmarshall the xml to java object, the transformation fails. There's also no way to tell the auto-transformer to what jaxbContext to use.

Activity

Ascending order - Click to sort in descending order
  • All
  • Comments
  • Work Log
  • History
  • Activity
  • Transitions
  • Commits
  • Source
  • Builds
Hide
Permalink
Henri Kinnunen added a comment - 24/Nov/11 03:41 AM

I forgot to mention that the workaround for this is to use: jaxb-xml-to-object-transformer but as far as I know the auto-transformer are used in endpoints to transform the request and response messages, so this also affects the use of endpoints.

Show
Henri Kinnunen added a comment - 24/Nov/11 03:41 AM I forgot to mention that the workaround for this is to use: jaxb-xml-to-object-transformer but as far as I know the auto-transformer are used in endpoints to transform the request and response messages, so this also affects the use of endpoints.
Hide
Permalink
Trevor Dearham added a comment - 25/Jun/12 04:06 AM

I get the same error and I'm only using jaxb-xml-to-object-transformer, although I'm not using returnClass because the service I'm connecting to returns 1 of 2 possible classes, which I have no control over.

Show
Trevor Dearham added a comment - 25/Jun/12 04:06 AM I get the same error and I'm only using jaxb-xml-to-object-transformer, although I'm not using returnClass because the service I'm connecting to returns 1 of 2 possible classes, which I have no control over.

People

  • Assignee:
    Unassigned
    Reporter:
    Henri Kinnunen
Vote (3)
Watch (3)

Dates

  • Created:
    24/Nov/11 03:37 AM
    Updated:
    25/Jun/12 04:06 AM

Agile

  • View on Board
  • Atlassian JIRA (v5.0.7#734-sha1:8ad78a6)
  • Report a problem
  • Powered by a free Atlassian JIRA open source license for MuleForge. Try JIRA - bug tracking software for your team.