相关疑难解决方法(0)

尝试解组xml时的类强制转换异常?

试图通过这里的类投射异常:

FooClass fooClass = (FooClass ) unmarshaller.unmarshal(inputStream);
Run Code Online (Sandbox Code Playgroud)

抛出此异常:

java.lang.ClassCastException: javax.xml.bind.JAXBElement
Run Code Online (Sandbox Code Playgroud)

我不明白这个 - 因为这个类是由xjc.bat工具生成的 - 它生成的类我根本没有改变 - 所以这里应该没有转换问题 - unmarshaller应该真的给我一个类可以投射到FooClass.

关于我做错了什么的任何想法?

java jaxb jaxb2

51
推荐指数
4
解决办法
8万
查看次数

如何使用spring来编组和解组xml?

我有一个春季启动项目.我的项目中有几个xsds.我使用maven-jaxb2-plugin生成了类.我已经使用教程来运行示例Spring启动应用程序.

import org.kaushik.xsds.XOBJECT;

@SpringBootApplication
public class JaxbExample2Application {

public static void main(String[] args) {
    //SpringApplication.run(JaxbExample2Application.class, args);
    XOBJECT xObject = new XOBJECT('a',1,2);

    try {
        JAXBContext jc = JAXBContext.newInstance(User.class);

        Marshaller marshaller = jc.createMarshaller();
        marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
        marshaller.marshal(xObject, System.out);

    } catch (PropertyException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (JAXBException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
 }
}
Run Code Online (Sandbox Code Playgroud)

但我担心的是我需要映射架构的所有jaxb类.还有一些东西在Spring中可以用来使我的任务更容易.我查看了Spring OXM项目,但它在xml中配置了应用程序上下文.弹簧靴是否有任何我可以开箱即用的东西.任何例子都会有所帮助.

编辑

我尝试了xerx593的答案,并使用main方法运行了一个简单的测试

    JaxbHelper jaxbHelper = new JaxbHelper();
    Jaxb2Marshaller marshaller = new Jaxb2Marshaller();
    marshaller.setClassesToBeBound(XOBJECT.class); …
Run Code Online (Sandbox Code Playgroud)

spring jaxb spring-oxm spring-boot

12
推荐指数
3
解决办法
4万
查看次数

标签 统计

jaxb ×2

java ×1

jaxb2 ×1

spring ×1

spring-boot ×1

spring-oxm ×1