我在jaxb context marshelling技术的帮助下将java对象转换为xml字符串。当我尝试将程序作为主类运行时。将它转换为xml字符串,但是当我从项目中的不同类调用该方法时。它抛出参数不匹配异常。 我正在使用tomcat 7和jdk 6并在eclipse中运行代码。 请在下面找到marshelling片段。
JAXBContext context = JAXBContext.newInstance(Test.class);
m = context.createMarshaller();
m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
sw = new StringWriter();
m.marshal(request, sw);
请指导我将其运行到项目中时失败的原因。
答案 0 :(得分:0)
请按照以下方式编组Java对象并使用XML编写器制作xml格式。
JAXBContext context = JAXBContext.newInstance(Test.class);
Marshaller m = context.createMarshaller();
m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
NamespaceFilter outFilter = new NamespaceFilter(null, false);
ByteArrayOutputStream baOPStram = new ByteArrayOutputStream();
//Use XML writer to create the xml file.
XMLWriter writer = new XMLWriter(baOPStram);
outFilter.setContentHandler(writer);
m.marshal(**YourJavaObject**, outFilter);
message = new String(baOPStram.toByteArray());
如果您希望将xml文件保存到某处,请提供输出文件的参考。
OutputStream os = new FileOutputStream("xyz.xml");
m.marshal(**YourJavaObject**, outFilter);
还在
之前设置了以下属性 m.setProperty(javax.xml.bind.Marshaller.JAXB_ENCODING, "UTF-8");