欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

jaxb的类型绑定

程序员文章站 2022-07-14 13:08:49
...

    今天一个同事使用jaxb将海航的wsdl里的几个schema生成marshall/unmarshall代码,但是运行的时候提示找不到类。但类是生成的,而且确实存在。

    翻了翻jaxb,这个跟xmlbeans很像的东西,绑定的类型不是直接从classpath来的。

大概的加载过程是,

1、需要通过servicelocator的方式或者jaxb.properties里,提供一个javax.xml.bind.context.factory的实现类。

2、默认的实现类是com.sun.xml.bind.v2.ContextFactory。如果在需要加载的package下,有一个叫jaxb.index的文件,则加载其中的每一个类。(每行为一个类名,不带.class。以#开头则忽略。)

3、而且每个要用的package下,需要一个ObjectFactory来负责加载需要的类。一般生成的ObjectFactory,加载的逻辑也比较诡异:加载ObjectFactory中的每一个以create开头的方法的返回值类型。

 

 

:)