注意事项

JiBX:1.2.2 (https://sourceforge.net/projects/jibx/files/jibx/jibx-1.2.2/)
JDK:1.6 (http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase6-419409.html)
ANT:1.9.12 (http://mirrors.shu.edu.cn/apache//ant/binaries/)

版本不一定要是以上的,但是其他的可能会报各种莫名其妙的错误

重要步骤

环境变量

项目结构

执行命令及变化

执行的目录:

ant compile bindgen

另一种生成xml的方法

参考:http://www.voidcn.com/article/p-gdeaekhv-kw.html

  • 编译Java类文件,生成class文件
  • 进入class文件目录
  • 执行:
java -cp E:\WORK\jibx_1_2_2\jibx\lib\jibx-tools.jar;bin org.jibx.binding.generator.BindGen Address

一个简单的例子

其中jdk是1.6

lib是jibx的jar

package com.xh.bean;

public class Student {
private String name;
private String SNO;
private int classNO;
private int age; public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public String getSNO() {
return SNO;
} public void setSNO(String SNO) {
this.SNO = SNO;
} public int getClassNO() {
return classNO;
} public void setClassNO(int classNO) {
this.classNO = classNO;
} public int getAge() {
return age;
} public void setAge(int age) {
this.age = age;
} @Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", SNO='" + SNO + '\'' +
", classNO=" + classNO +
", age=" + age +
'}';
}
}
import com.xh.bean.Student;
import org.jibx.runtime.BindingDirectory;
import org.jibx.runtime.IBindingFactory;
import org.jibx.runtime.IMarshallingContext;
import org.jibx.runtime.JiBXException; import java.io.StringWriter; public class Main { public static void main(String[] args) throws JiBXException {
Student student=new Student();
student.setAge(12);
student.setClassNO(111);
student.setName("jon");
student.setSNO("NO_ewewewj3413"); IBindingFactory factory = BindingDirectory.getFactory(Student.class);
IMarshallingContext mctx= factory.createMarshallingContext();
StringWriter sw=new StringWriter();
mctx.setIndent(2);
mctx.marshalDocument(student, "UTF-8", null, sw);
System.out.printf(String.valueOf(sw)); }
}

如果直接运行测试类:

就会报错:

Exception in thread "main" Unable to access binding information for class com.xh.bean.Student
Make sure the binding has been compiled
java.lang.NoSuchFieldException: JiBX_bindingList

重要的步骤:

  • 编译项目

    如果执行了测试,这一步可以跳过。
  • 进入编译后的class根目录:

  • 生成bind.xml,注意完整类名
java -cp bin;D:\ide\jibx_1_2_2\jibx\lib\jibx-tools.jar org.jibx.binding.generator.BindGen -b bind.xml -s src com.xh.bean.Student
  • 绑定xml
java -cp bin;D:\ide\jibx_1_2_2\jibx\lib\jibx-bind.jar org.jibx.binding.Compile -v bind.xml

再次运行测试:

<?xml version="1.0" encoding="UTF-8"?>
<student xmlns="http://xh.com/bean" classNO="111" age="12">
<name>jon</name>
<SNO>NO_ewewewj3413</SNO>
</student>

相关资料

JiBX笔记的更多相关文章

  1. git-简单流程(学习笔记)

    这是阅读廖雪峰的官方网站的笔记,用于自己以后回看 1.进入项目文件夹 初始化一个Git仓库,使用git init命令. 添加文件到Git仓库,分两步: 第一步,使用命令git add <file ...

  2. js学习笔记:webpack基础入门(一)

    之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...

  3. SQL Server技术内幕笔记合集

    SQL Server技术内幕笔记合集 发这一篇文章主要是方便大家找到我的笔记入口,方便大家o(∩_∩)o Microsoft SQL Server 6.5 技术内幕 笔记http://www.cnbl ...

  4. PHP-自定义模板-学习笔记

    1.  开始 这几天,看了李炎恢老师的<PHP第二季度视频>中的“章节7:创建TPL自定义模板”,做一个学习笔记,通过绘制架构图.UML类图和思维导图,来对加深理解. 2.  整体架构图 ...

  5. PHP-会员登录与注册例子解析-学习笔记

    1.开始 最近开始学习李炎恢老师的<PHP第二季度视频>中的“章节5:使用OOP注册会员”,做一个学习笔记,通过绘制基本页面流程和UML类图,来对加深理解. 2.基本页面流程 3.通过UM ...

  6. NET Core-学习笔记(三)

    这里将要和大家分享的是学习总结第三篇:首先感慨一下这周跟随netcore官网学习是遇到的一些问题: a.官网的英文版教程使用的部分nuget包和我当时安装的最新包版本不一致,所以没法按照教材上给出的列 ...

  7. springMVC学习笔记--知识点总结1

    以下是学习springmvc框架时的笔记整理: 结果跳转方式 1.设置ModelAndView,根据view的名称,和视图渲染器跳转到指定的页面. 比如jsp的视图渲染器是如下配置的: <!-- ...

  8. 读书笔记汇总 - SQL必知必会(第4版)

    本系列记录并分享学习SQL的过程,主要内容为SQL的基础概念及练习过程. 书目信息 中文名:<SQL必知必会(第4版)> 英文名:<Sams Teach Yourself SQL i ...

  9. 2014年暑假c#学习笔记目录

    2014年暑假c#学习笔记 一.C#编程基础 1. c#编程基础之枚举 2. c#编程基础之函数可变参数 3. c#编程基础之字符串基础 4. c#编程基础之字符串函数 5.c#编程基础之ref.ou ...

随机推荐

  1. 在中国使用苹果Mac电脑的都是些什么人?

    来源:PConline 资讯 文章收录于:风云社区(提供上千款各类Mac软件下载)   (图片来源于互联网分享,如涉及版权问题请联系作者删除) 在中国用Mac的都是什么人?腾讯CDC用户研究中心对 Q ...

  2. Python的命名空间及作用域

    命名空间的分类 全局命名空间 是在程序从上到下被执行的过程中依次加载进内存的:放置了我们设置的所有变量名和函数名 局部命令空间 就是函数内部定义的名字:当调用函数的时候 才会产生这个名称空间 随着函数 ...

  3. js实现table用鼠标改变td的宽度,固定table宽度和高度超过显示点

    <!DOCTYPE HTML> <html> <head> <meta charset="gbk"> <title>ta ...

  4. ruby数据库表添加字段、修改字段类型、修改字段名称

    Rails 手册 3.8 使用 change 方法 1.为表添加字段 rails g migration add_column_to_d_groups_equip_num class AddColum ...

  5. 【整理】Linux 下 自己使用的 debug宏 printf

    #ifdef __DEBUG_PRINTF__ /* * * Some Debug printf kit for devlopment * * Date : 2019.03.04 * * Editor ...

  6. log 的 debug()、 error()、 info()方法

    log4j定义了8个级别的log(除去OFF和ALL,可以说分为6个级别),优先级从高到低依次为:OFF.FATAL.ERROR.WARN.INFO.DEBUG.TRACE. ALL. 简单的说,就是 ...

  7. ajax方式下载文件

    在web项目中需要下载文件,由于传递的参数比较多(通过参数在服务器端动态下载指定文件),所以希望使用post方式传递参数.通常,在web前端需要下载文件,都是通过指定<a>标签的href属 ...

  8. PHP 图片验证码验证

    *.html <input type="> <img src="> api.php <?php session_start(); $dataObj = ...

  9. Hero Patterns - 聚合各种 SVG 背景纹理素材的网站

    Hero Patterns 是一个聚合了各种 SVG 背景纹理素材的网站,提供的多样的素材可以给你的网站带去特色. SVG 是一种分辨率无关的图形(矢量图形).这意味着它在任何类型的屏幕都不会遭受任何 ...

  10. 大规模数据导入和导出(sqlserver)

    请期待... https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-setup-tools#RHEL msodbcsql-13.1.6 ...