注意事项

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>

相关资料

最新文章

  1. 18.Java泛型
  2. WebLogic: console 启动慢解决办法
  3. P1382 光棍组织
  4. Android屏幕分辨率详解(VGA、HVGA、QVGA、WVGA、WQVGA)
  5. android入门到熟练(三)----UI界面
  6. asp 验证
  7. Linux如何生成列表
  8. [Android] Upload package to device fails #2720
  9. Sublime Text 中文乱码解决方案
  10. shell中使用带密码的方式直接pg_dump和psql
  11. linux系统下shell命令中的sleep
  12. day8-python函数
  13. 【安全开发】java安全编码规范
  14. MySQL修改datadir目录
  15. php面向对象(OOP)编程完整教程
  16. php prepare
  17. java 高精度 四则运算
  18. switchhosts使用技巧
  19. python time,random,os,sys,序列化模块
  20. js 给某个div增加class 样式(三种方式)

热门文章

  1. 列举一些 MacBook Pro 必需的外设和应用程序推荐
  2. linux报错汇总
  3. flask flash消息
  4. Linux sys_call_table变动检测
  5. 【JAVA】使用IntelliJ IDEA创建Java控制台工程
  6. Idea中的一些快捷键
  7. 【leetcode-84】 柱状图中最大的矩形
  8. flask结合celery实现异步响应HTTP请求
  9. 前端面试题整理—HTML/CSS篇
  10. int、bool和str