gpt4 book ai didi

xml - Tomcat,JSP 应用程序中的 JAXB 编码 : Adding a schema throws exception

转载 作者:行者123 更新时间:2023-11-28 22:33:04 25 4
gpt4 key购买 nike

对于使用 XML 作为导出/导入格式的大型项目,我收到了一个 XSD 架构文件。我使用 JAXB 生成类,添加例程以将数据填充到生成的类中。现在我将整个文件编码到磁盘上的 XML 文件中:

Spmigration mig = new Spmigration(); //Main migration object
mig.setBestellungen(new OrdersImpl().getOrders(shop));
JAXBContext jc = JAXBContext.newInstance( "my.migration.context" );
Marshaller m = jc.createMarshaller();
m.setProperty( Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE );
m.marshal( mig, new File("test.xml") );

这就像一个魅力。输出文件格式正确,如果模式正确,甚至是有效的。现在,我正在尝试导出文件,但直接添加架构。我添加了几行:

Spmigration mig = new Spmigration(); //Main migration object
mig.setBestellungen(new OrdersImpl().getOrders(shop));
JAXBContext jc = JAXBContext.newInstance( "my.migration.context" );
Marshaller m = jc.createMarshaller();
SchemaFactory schemaFactory = SchemaFactory.newInstance("http://www.w3.org/2001/XMLSchema");
Schema schema = schemaFactory.newSchema(new File("myschema.xsd"));
m.setProperty( Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE );
m.setSchema(schema);
m.marshal( mig, new File("test.xml") );

模式文件存在并且可读(我知道是因为我在第一次尝试时忘记提供文件时遇到了另一个错误)。现在,行

Schema schema = schemaFactory.newSchema(new File("myschema.xsd"));

生成以下异常:

java.lang.VerifyError: (class: org/apache/xerces/impl/xs/XSAnnotationImpl, method: writeToDOM signature: (Lorg/w3c/dom/Node;S)V) Incompatible object argument for function call org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:862)

当然,这不是整个堆栈跟踪。但这似乎是问题所在。从网络知道的关于此特定错误消息的问题数量非常少,我没有读到任何重要信息。

有什么我可以检查的,我做错了什么吗?

最佳答案

这并不是真正的解决方案,但我们最终所做的并不是使用为此描述的方法添加架构,而是稍后在另一个步骤中通过文本替换添加架构。

关于xml - Tomcat,JSP 应用程序中的 JAXB 编码 : Adding a schema throws exception,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5300477/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com