首页 > 其他分享 >高效XML绑定框架JIBX

高效XML绑定框架JIBX

时间:2023-02-08 17:46:01浏览次数:57  
标签:XML xml java clover JIBX frame 绑定

高效XML绑定框架JIBX

demo源码地址

https://gitee.com/clover-clover/clover.git
具体路径:
clover/clover-frame/clover-frame-netty/src/main/java/com/clover/frame/netty/http/xml/pojo

ant build.xml具体配置

build.xml配置文件中,bindgen任务需要特别注意,不要使用org.jibx.binding.BindingGenerator这个类,使用此类在后续的测试中发现会有问题:

集合属性报错-生成xml时

java.lang.String cannot be cast to org.jibx.runtime.IMarshallable

枚举属性报错-生成POJO对象时

该枚举没有可用的构造方法

<?xml version="1.0" encoding="utf-8"?>
<project default="main" basedir=".">
    <path id="classpath">
        <dirset dir="${basedir}/target/classes"/>
        <!--由于不需要编译单元测试代码,就注掉了下面的内容-->
        <!--<dirset dir="${basedir}/target/test-classes" />-->

        <!--下面目录为本地maven仓库的jibx和bcel的jar包的绝对路径-->
        <fileset dir="/Users/zhangdq/.m2/repository/org/jibx/jibx-bind/1.4.2/" includes="*.jar"/>
        <fileset dir="/Users/zhangdq/.m2/repository/org/jibx/jibx-run/1.4.2/" includes="*.jar"/>
        <fileset dir="/Users/zhangdq/.m2/repository/org/jibx/jibx-tools/1.4.2/" includes="*.jar"/>
        <fileset dir="/Users/zhangdq/.m2/repository/org/jibx/jibx-schema/1.4.2/" includes="*.jar"/>
        <fileset dir="/Users/zhangdq/.m2/repository/org/apache/bcel/bcel/6.7.0/" includes="*.jar"/>
        <fileset dir="/Users/zhangdq/.m2/repository/log4j/log4j/1.2.17/" includes="*.jar"/>
        <fileset dir="/Users/zhangdq/.m2/repository/com/thoughtworks/qdox/qdox/1.12.1/" includes="*.jar"/>
        <fileset dir="/Users/zhangdq/.m2/repository/org/apache/commons/commons-lang3/3.12.0/" includes="*.jar"/>
        <fileset dir="/Users/zhangdq/.m2/repository/xpp3/xpp3/1.1.3.4.O/" includes="*.jar"/>
    </path>
    <!--这个是主任务 , depends 依赖下面写的三个分任务 -->
    <target name="main" depends="compile,bindgen,bind" description="Main target"/>
    <target name="compile" description="Compilation target">
        <echo>Building file.</echo>
        <!--相当于运行 javac命令进行源码编译-->
        <javac srcdir="${basedir}/src/main/java/com/clover/frame/netty/http/xml/pojo/" destdir="${basedir}/target/classes" includeantruntime="true"/>
    </target>
    <target name="bindgen">
        <echo message="Running BindGen tool"/>
        <!--
        相当于运行Java命令生成binding.xml文件 类似于网上说的如下命令 ->
        java -cp ..libx-tools.jar ..BindGen -t 生成文件保存地址 -v 需要绑定文件的class文件 完整包名.类名
        -->

        <java classpathref="classpath" fork="true" failonerror="true" classname="org.jibx.binding.generator.BindGen">
            <arg value="-s"/>
            <arg value="src/main/java/"/>
            <arg value="com.clover.frame.netty.http.xml.pojo.Order"/>
        </java>
    </target>
    <target name="bind">
        <!--将实体类的class和xml映射文件进行绑定-->
        <echo message="Running bind"/>
        <taskdef name="bind" classname="org.jibx.binding.ant.CompileTask">
            <classpath refid="classpath"/>
        </taskdef>
        <bind binding="${basedir}/binding.xml">
            <classpath refid="classpath"/>
        </bind>
    </target>
</project>

参考地址

https://blog.csdn.net/echohuangshihuxue/article/details/128653428

标签:XML,xml,java,clover,JIBX,frame,绑定
From: https://www.cnblogs.com/demon001/p/17102729.html

相关文章

  • Spring29 - 基于XML的事务管理
    基于XML的声明式事务场景模拟参考基于注解的声明式事务与注解管理事务相同的通用步骤(1)开启组件扫描<!--扫描组件--><context:component-scanbase-package="com.......
  • xml和xsd
    1·XMLschema元素|菜鸟教程(runoob.com)https://www.runoob.com/schema/el-schema.html2·XSD杂项数据类型(MiscellaneousDataTypes)(w3school.com.cn)https://w......
  • VS2019和unity绑定设置
    第一步:打开本机VisualStudioInstaller 第二步:点击修改  第三步:下载对应组件  第四步:修改Unity脚本编辑工具绑定 点击edit -> preferences -> ......
  • v-model 创建双向绑定
    在表单 <input>、<textarea> 及<select>元素控件或者组件上创建双向绑定,它负责监听用户的输入事件以更新数据1.普通文本框<div id="app"><p>{{msg}}</p><inp......
  • 002_springboot项目中 pom.xml 配置的作用
    parent:用以定义一系列的常用坐标版本;定义一系列的常用坐标组合;比如在pom.xml文件中引入一个javax.servlet,<version>那里是可以不写的,也就是不写版本,而决定采用哪个版本......
  • DataTableToXml
    privatestaticstringDataTableToXml(DataTabletable){if(null==table)returnstring.Empty;stringxmlStr="<ROOT>\n";......
  • Spring23 - 基于XML配置的AOP
    基于XML的AOP准备工作参考基于注解的AOP环境实现在.xml文件中对AOP进行配置<context:component-scanbase-package="com.atguigu.aop.xml"></context:component-s......
  • 华为交换机:配置IPSG防止主机私自更改IP地址示例(DHCP Snooping动态绑定),如果手动配置ip
    华为交换机:配置IPSG防止主机私自更改IP地址示例(DHCPSnooping动态绑定),如果手动配置ip就上不了网华为交换机:配置IPSG防止主机私自更改IP地址示例(DHCPSnooping动态绑定),如果手......
  • 数据采集技术之在Python中Libxml模块安装与使用XPath
    为了使用XPath技术,对爬虫抓取的网页数据进行抽取(如标题、正文等等),之后在Windows下安装libxml2模块(安装后使用的是Libxml模块),该模块含有xpath。准备需要的软件包:Python2.7......
  • javaScript DOM - document 获取元素的方式,document 事件的三要素,事件的绑定方式,常用
    获取元素:1.document获取元素的方式getElementById通过Id名获取返回对象getElementsByTagName通过标签名获取返回数组getElementsByClassName通过类名获取......