JiBX笔记
注意事项
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>
相关资料
- 参考:
https://www.ibm.com/developerworks/cn/java/tutorials/j-jibx1/index.html
http://www.cnblogs.com/hoojo/archive/2011/04/27/2030205.html
https://www.jianshu.com/p/e2c9aaf1675e - 源码
JiBX笔记的更多相关文章
- git-简单流程(学习笔记)
这是阅读廖雪峰的官方网站的笔记,用于自己以后回看 1.进入项目文件夹 初始化一个Git仓库,使用git init命令. 添加文件到Git仓库,分两步: 第一步,使用命令git add <file ...
- js学习笔记:webpack基础入门(一)
之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...
- SQL Server技术内幕笔记合集
SQL Server技术内幕笔记合集 发这一篇文章主要是方便大家找到我的笔记入口,方便大家o(∩_∩)o Microsoft SQL Server 6.5 技术内幕 笔记http://www.cnbl ...
- PHP-自定义模板-学习笔记
1. 开始 这几天,看了李炎恢老师的<PHP第二季度视频>中的“章节7:创建TPL自定义模板”,做一个学习笔记,通过绘制架构图.UML类图和思维导图,来对加深理解. 2. 整体架构图 ...
- PHP-会员登录与注册例子解析-学习笔记
1.开始 最近开始学习李炎恢老师的<PHP第二季度视频>中的“章节5:使用OOP注册会员”,做一个学习笔记,通过绘制基本页面流程和UML类图,来对加深理解. 2.基本页面流程 3.通过UM ...
- NET Core-学习笔记(三)
这里将要和大家分享的是学习总结第三篇:首先感慨一下这周跟随netcore官网学习是遇到的一些问题: a.官网的英文版教程使用的部分nuget包和我当时安装的最新包版本不一致,所以没法按照教材上给出的列 ...
- springMVC学习笔记--知识点总结1
以下是学习springmvc框架时的笔记整理: 结果跳转方式 1.设置ModelAndView,根据view的名称,和视图渲染器跳转到指定的页面. 比如jsp的视图渲染器是如下配置的: <!-- ...
- 读书笔记汇总 - SQL必知必会(第4版)
本系列记录并分享学习SQL的过程,主要内容为SQL的基础概念及练习过程. 书目信息 中文名:<SQL必知必会(第4版)> 英文名:<Sams Teach Yourself SQL i ...
- 2014年暑假c#学习笔记目录
2014年暑假c#学习笔记 一.C#编程基础 1. c#编程基础之枚举 2. c#编程基础之函数可变参数 3. c#编程基础之字符串基础 4. c#编程基础之字符串函数 5.c#编程基础之ref.ou ...
随机推荐
- 新建体(3):dbms_job下新建一个job定期自动执行存储过程
http://blog.csdn.net/thinkscape/article/details/7411012http://java-admin.iteye.com/blog/231159sql窗口执 ...
- opencv: 基本知识;
注: 该篇博文为扩展型,后期将逐步进行扩展: 1. IplImage转Mat IplImage转Mat: IplImage *pImage = cv::loadImage(“”); Mat imgM ...
- go config
安装导入 go get github.com/astaxie/beego/config import "github.com/astaxie/beego/config" 使用 配置 ...
- Word 测试下发布博客
目录 语法. 3 NULL,TRUE,FALSE 3 大小端存储 4 类型转换 4 转义字符 5 运算符的优先级 5 表达式(a=b=c) 7 *pa++=* ...
- SearchServer Elasticsearch Cluster / kibana
S 使用nginx代理kibana并设置身份验证 https://blog.csdn.net/wyl9527/article/details/72598112 使用nginx代理kibana并设置身份 ...
- Centos7下安装OpenLDAP+Phpldapadmin及主主同步
1.环境介绍及初始化准备 server1:172.16.138.87 openldap01 server2:172.16.138.88 openldap02 配置yum源 wget -O /etc/y ...
- php5.4使用dblib扩展,连接sqlserver中文乱码问题
在使用php链接sqlserver的时候,查询出来的数据,编码不稳定,一会utf8,一会出现问号.很纠结.下面的方法,可以解决此种问题.前提是dblib扩展. 如果查到的结果是乱码,更改/usr/lo ...
- hbase记录-备份脚本参考
#!/bin/sh ################################## # CreateDate:// : # ModifyDate:// : ################### ...
- GET和POST传输方式
GET和POST传输 在很多人看来,get和post的区别有比如安不安全,传输有大小限制等,在这里,我将对get和post做出客观的评价: GET: 传输方法:get传输数据一般是在地址栏的url的问 ...
- Could not find default endpoint element that references contract 'wcfXXXXXXXXXXX' in the ServiceMode
Service本身没有问题,但是调用的时候,只在DataAccessSilverlight里引用了,而在主工程WebGISDemo里没有引用服务PowerDataServiceReference,所以 ...