marshelling java对象时的参数类型不匹配异常

时间:2016-07-22 07:25:19

标签: java xml eclipse jaxb

我在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);

请指导我将其运行到项目中时失败的原因。

1 个答案:

答案 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");