微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

因为当我导入这个 camel-jaxb 库时,所有 marshall 的工作方式都不同

如何解决因为当我导入这个 camel-jaxb 库时,所有 marshall 的工作方式都不同

背景 当我不导入这个库(org.apache.camel - camel-jaxb)时,代码通常会执行从 json 到 pojo、pojo 到 xml 和 xml 到 pojo 的转换, 但我想对命名空间和 xsd 使用 javax 注释

包含 json 文件的示例存储库 repository link github

image: library camel json 到 pojo - pojo 到 xml - xml 到 pojo

        <dependency>
          <groupId>org.apache.camel</groupId>
          <artifactId>camel-jaxb</artifactId>
          <version>${camel.version}</version>
        </dependency>
        from("file:file/json").to("direct:my-activemq-xml-queue");

        from("direct:my-activemq-xml-queue").unmarshal().json(JsonLibrary.Jackson,CurrencyExchange.class)
                .to("bean-validator://x?group=javax.validation.groups.Default")
                .log("${body} ::::::::::::::::pojo:::::::::::::::").marshal().jacksonxml(CurrencyExchange.class)
                .log("${body} :::::::::::::::::::::xml:::::::::::::::::").to("direct:my-activemq-xml-json-queue");

        // converto xml to pojo
        from("direct:my-activemq-xml-json-queue").unmarshal().jacksonxml(CurrencyExchange.class)
                .to("log:received-message-from-active-mq");

image: Routes

正常转化

image: I move the file

当我移动文件时,它可以正常工作,但不会给我带来命名空间和 xsd,但可以正常工作

image: normal result

2021-03-31 11:58:45.031  INFO 33552 --- [ile://file/json] route2                                   : CurrencyExchange [id=1002,from=user@gmail.com,to=DRAFT,conversionMultiple=10,bool=true,table=table [key=userg@mail.com,value=cc]] ::::::pojo::::
2021-03-31 11:58:45.093  INFO 33552 --- [ile://file/json] route2                                   : <CurrencyExchange><id>1002</id><from>user@gmail.com</from><to>DRAFT</to><conversionMultiple>10</conversionMultiple><bool>true</bool><table><key>userg@mail.com</key><value>cc</value></table></CurrencyExchange> :::xml:
2021-03-31 11:58:45.160  INFO 33552 --- [ile://file/json] received-message-from-active-mq          : Exchange[ExchangePattern: InOnly,BodyType: com.cam.camelmicroservicesb.routes.dto.response.CurrencyExchange,Body: CurrencyExchange [id=1002,value=cc]]]

错误 但是当我导入这个库时,所有的转换都是在xml中生成

image: import

image: wrong result

2021-03-31 11:30:51.012[0;39m [32m INFO[0;39m [35m34556[0;39m [2m---[0;39m [2m[ile://file/json][0;39m [36mroute2                                  [0;39m [2m:[0;39m <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ns2:currencyExchange xmlns:NS2="http://www.test.com/testml" xmlns:ns2="http://www.test.com/testxml">
    <ns2:id>1002</ns2:id>
    <ns2:From>user@gmail.com</ns2:From>
    <ns2:to>DRAFT</ns2:to>
    <ns2:ConversionMultiple>10</ns2:ConversionMultiple>
    <ns2:bool>true</ns2:bool>
    <ns2:table>
        <keyRequest>userg@mail.com</keyRequest>
        <valuePcRequest>cc</valuePcRequest>
    </ns2:table>
</ns2:currencyExchange>
 ::::::::::::::::pojo:::::::::::::::
[2m2021-03-31 11:30:51.061[0;39m [32m INFO[0;39m [35m34556[0;39m [2m---[0;39m [2m[ile://file/json][0;39m [36mroute2                                  [0;39m [2m:[0;39m <CurrencyExchange><id>1002</id><from>user@gmail.com</from><to>DRAFT</to><conversionMultiple>10</conversionMultiple><bool>true</bool><table><key>userg@mail.com</key><value>cc</value></table></CurrencyExchange> :::::::::::::::::::::xml:::::::::::::::::
[2m2021-03-31 11:30:51.114[0;39m [32m INFO[0;39m [35m34556[0;39m [2m---[0;39m [2m[ile://file/json][0;39m [36mreceived-message-from-active-mq         [0;39m [2m:[0;39m Exchange[ExchangePattern: InOnly,Body: <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ns2:currencyExchange xmlns:NS2="http://www.test.com/testml" xmlns:ns2="http://www.test.com/testxml">
    <ns2:id>1002</ns2:id>
    <ns2:From>user@gmail.com</ns2:From>
    <ns2:to>DRAFT</ns2:to>
    <ns2:ConversionMultiple>10</ns2:ConversionMultiple>
    <ns2:bool>true</ns2:bool>
    <ns2:table>
        <keyRequest>userg@mail.com</keyRequest>
        <valuePcRequest>cc</valuePcRequest>
    </ns2:table>
</ns2:currencyExchange>
]

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?