JAXB bug uri is not absolute异常

jaxb在对指定路径做对象的序列化或者反序列化时会出现jaxb uri is not absolute的异常,这个异常在windows环境下不会出现,只有到linux下才会出现,这是因为在windows下路径类似: D:\docs\YCYA\abc.xml可以识别为文件路径,而在linux下往往要配置成/youpath/abc.xml,这样就会出现jaxb uri is not absolute异常了。这也是这个异常的讨厌之处,windows下不出现,只在linux下出现。

出现此异常的错误代码如下:

private String configPath;

public void saveData(PojoClass obj) {
JAXB.marshal(obj, configPath);
}

上述代码中的configPath是要写入的文件路径,这段代码在windows下执行正常,但是在linux不正常,做如下调整后就可以兼容两种操作系统了。

private String configPath;

public void saveData(PojoClass obj) {
File file = new File(configPath);
JAXB.marshal(obj, file);
}

linux测试环境还是很重要的。

Logo

更多推荐