在用JOX方式实现JAVABEAN与XML文件之间的相互转换的时候的报错问题:
时间数据的问题:(XML文件转换成javabean的时候)
java.io.IOException: Error parsing XML document: java.text.ParseException: Unparseable date: "2012-02/02"
at com.wutka.jox.JOXSAXBeanInput.readObject(JOXSAXBeanInput.java:165)
at com.wutka.jox.JOXBeanInputStream.readObject(JOXBeanInputStream.java:97)
at com.wutka.jox.test.TestDeser.main(TestDeser.java:18)
报错如上,是因为XML文件中的数据格式不被支持,比如此处的"2012-02/02",这个数据不能呗eclipse支持,可以换成"2012-02-02"这样就可以了。
并且在代码中加入System.setProperty("com.oce.wutka.dateFormat这样一句话
报错如下:
java.io.IOException: Error parsing XML document: org.xml.sax.SAXParseException: The encoding "UBF-8" is not supported.
at com.wutka.jox.JOXSAXBeanInput.readObject(JOXSAXBeanInput.java:165)
at com.wutka.jox.JOXBeanInputStream.readObject(JOXBeanInputStream.java:97)
at com.wutka.jox.test.TestDeser.main(TestDeser.java:18)
原因:在XML文件中的 ,UBF-8不被支持,直接省略,成为默认的encoding即可
在用JOX方式将XML文件转换成javabean的时候:报错如下
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/xml/serialize/OutputFormat
at com.wutka.jox.JOXBeanOutputStream.setupSink(JOXBeanOutputStream.java:173)
at com.wutka.jox.JOXBeanOutputStream. at com.jox.main.JoxMain.toXML(JoxMain.java:46) at com.jox.main.JoxMain.main(JoxMain.java:87) Caused by: java.lang.ClassNotFoundException: org.apache.xml.serialize.OutputFormat at java.net.URLClassLoader$1.run(URLClassLoader.java:200) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:188) at java.lang.ClassLoader.loadClass(ClassLoader.java:307) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) at java.lang.ClassLoader.loadClass(ClassLoader.java:252) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320) ... 4 more 报错原因: OutputFormat这个类没找到,导入jar包出错,需要导入org.apache.xml.serialize包 缺少OutputFormat 类,缺少jar包 org.apache.xml.serialize.OutputFormat到http://archive.apache.org/dist/xml/xerces-j/站点上去下载Xerces-J-bin.2.6.0.zip。 org.apache.xml.serialize在xercesImpl.jar里面。 以上错误均为自己亲测,网上找到这些方法太难了,在这里分享下,希望对其他人都帮助。