注意事项

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. 【清北学堂2018-刷题冲刺】Contest 2

     这场比赛的T1相当智熄.由于至今无法理解题意,我只能解出前20分.诸位dalao谁能比较好地理解题意(独立性)的,请联系我,不胜感激.  在此本蒟蒻只能贴上题面: Task 1:选举 [问题描述] ...

  2. node.js小案例_留言板

    一.前言 通过这个案例复习: 1.node.js中模板引擎的使用 2.node.js中的页面跳转和重定向 二.主要内容 1.案列演示:  2.案列源码:https://github.com/45612 ...

  3. CodeForces1065F 树形dp

    http://codeforces.com/problemset/problem/1065/F 你有一棵带有n个结点的树,根是结点1.有一个标记,最初在根结点处.你可以将标记移动到其他结点处.假设标记 ...

  4. Symbol特殊用途

    1. Symbol.iterator 定义对象的迭代器 一般我们遍历一个对象用for...in es6新增了一个for...of 但是对象却不能用 因为对象没有“迭代器”,那么我们给它定制一个 有了迭 ...

  5. 手把手教你通过Ambari新建Hadoop集群图解案例

    手把手教你通过Ambari新建Hadoop集群图解案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 登陆系统之后,会看到Ambari空空如也的欢迎界面,接下来我们就需要介绍如何通 ...

  6. JAVA核心技术I---JAVA基础知识(集合set)

    一:集合了解 (一)确定性,互异性,无序性 确定性:对任意对象都能判定其是否属于某一个集合 互异性:集合内每个元素都是无差异的,注意是内容差异 无序性:集合内的顺序无关 (二)集合接口HashSet, ...

  7. bootstrap实现checkbox全选、取消全选

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <!-- 最新版本的 ...

  8. 细说java平台日志组件

    1. java.util.logging JDK自带日志组件,使用方式简单,不需要依赖第三方日志组件.支持将日志打印到控制台,文件,甚至可以将日志通过网络打印到指定主机.相对于第三方独立日志框架来说, ...

  9. 我的长大app开发教程第二弹:完成ContentFragment底部按钮

    在开始之前,先上一张效果图 突然发现有点知乎的味道...的确..知乎灰#989898,知乎蓝15,136,235(逃.... 1.学P图 想我大一的时候也用过不少Adobe的软件,昨天重新打开我的Ph ...

  10. 计算机网络--HTTP协议

    TCP/IP协议 互联网构建的初衷是信息的共享.在信息的传递过程中,计算机不可避免的需要产生交流.就像我们与别人交谈需要懂得对方的语言才能明白对方表达的意思一样,计算机的交流也需要一个约束了,称之为协 ...