草庐IT

java - JAXB 给我 : java. lang.IllegalArgumentException: is parameter must not be null

我正在使用JAXB将一些XML解码为Java对象:我的代码看起来有点像这样:InputStreamtestMsg=getClass().getResourceAsStream("TestDocumentEvent.xml");Unmarshallerunmarshaller=JAXBContext.newInstance(DocumentEvent.class).createUnmarshaller();DocumentEventunmarshalled=(DocumentEvent)unmarshaller.unmarshal(testMsg);但是,当我运行此代码时出现异常:jav

java - JAXB 给我 : java. lang.IllegalArgumentException: is parameter must not be null

我正在使用JAXB将一些XML解码为Java对象:我的代码看起来有点像这样:InputStreamtestMsg=getClass().getResourceAsStream("TestDocumentEvent.xml");Unmarshallerunmarshaller=JAXBContext.newInstance(DocumentEvent.class).createUnmarshaller();DocumentEventunmarshalled=(DocumentEvent)unmarshaller.unmarshal(testMsg);但是,当我运行此代码时出现异常:jav

java - 可以使用 JAXB 2.0 验证编码的 XML 吗?

显然在JAXB的第2版中-validator类已被弃用-这是否意味着编码器正在自动验证您的XML?如果是这样,它似乎并没有提示我正在形成的一些不正确的XML!谁能给我一些关于如何验证编码XML以确保它符合XSD架构的建议。非常感谢。 最佳答案 通过使用JAXP1.3SchemaValidationFramework,验证功能在JAXB2.0中得到了扩展。你之前在哪里:unmarshaller.setValidating(true);现在你需要做的:SchemaFactorysf=SchemaFactory.newInstance(j

java - 可以使用 JAXB 2.0 验证编码的 XML 吗?

显然在JAXB的第2版中-validator类已被弃用-这是否意味着编码器正在自动验证您的XML?如果是这样,它似乎并没有提示我正在形成的一些不正确的XML!谁能给我一些关于如何验证编码XML以确保它符合XSD架构的建议。非常感谢。 最佳答案 通过使用JAXP1.3SchemaValidationFramework,验证功能在JAXB2.0中得到了扩展。你之前在哪里:unmarshaller.setValidating(true);现在你需要做的:SchemaFactorysf=SchemaFactory.newInstance(j

java - 如果命名空间声明在 SOAP 信封上,如何使用 JAXB 解码 SOAP 响应?

只有在SOAP信封已被移除时,JAXB才能解码XML。但是,我试图解码的SOAP响应在SOAP信封上有其namespace声明。如果我删除SOAP信封,命名空间声明也将被删除。因此,标签的前缀将指代无。这会导致JAXB引发错误。如果在SOAP信封上声明了命名空间,我如何使用JAXB解码SOAP响应?下面是我需要解码的类似XML示例:123456789如果我取下SOAP信封会发生这种情况:123456789如果我删除了SOAP信封,命名空间声明也将消失。JAXB将无法解码上述xml,因为缺少前缀“ns”的命名空间定义。因此,它将返回“元素“ns:getNumberResponse”的前缀

java - 如果命名空间声明在 SOAP 信封上,如何使用 JAXB 解码 SOAP 响应?

只有在SOAP信封已被移除时,JAXB才能解码XML。但是,我试图解码的SOAP响应在SOAP信封上有其namespace声明。如果我删除SOAP信封,命名空间声明也将被删除。因此,标签的前缀将指代无。这会导致JAXB引发错误。如果在SOAP信封上声明了命名空间,我如何使用JAXB解码SOAP响应?下面是我需要解码的类似XML示例:123456789如果我取下SOAP信封会发生这种情况:123456789如果我删除了SOAP信封,命名空间声明也将消失。JAXB将无法解码上述xml,因为缺少前缀“ns”的命名空间定义。因此,它将返回“元素“ns:getNumberResponse”的前缀

java - 如何使用 JAXB Marshaller 流式传输大文件?

我面临的问题是如何将大量对象编码到单个XML文件中,如此之大,我无法一步编码完整列表。我有一个方法可以以block的形式返回这些对象,但是我使用JAXB对这些对象进行编码,编码程序返回一个异常(exception),即这些对象不是根元素。这对于您想要一步编码完整文档的正常情况是可以的,但是如果我将JAXB_FRAGMENT属性设置为true,也会发生这种情况。这是所需的XML输出:...所以我假设我需要某种监听器来动态加载下一个重复元素block,以便在编码器编写根元素的结束标记之前将其提供给编码器。但是怎么做呢?到目前为止,我只使用JAXB来编码小文件,而JAXB文档并没有为该用例提

java - 如何使用 JAXB Marshaller 流式传输大文件?

我面临的问题是如何将大量对象编码到单个XML文件中,如此之大,我无法一步编码完整列表。我有一个方法可以以block的形式返回这些对象,但是我使用JAXB对这些对象进行编码,编码程序返回一个异常(exception),即这些对象不是根元素。这对于您想要一步编码完整文档的正常情况是可以的,但是如果我将JAXB_FRAGMENT属性设置为true,也会发生这种情况。这是所需的XML输出:...所以我假设我需要某种监听器来动态加载下一个重复元素block,以便在编码器编写根元素的结束标记之前将其提供给编码器。但是怎么做呢?到目前为止,我只使用JAXB来编码小文件,而JAXB文档并没有为该用例提

java - 如何指定特定的 JAXB 实现?

好像我过去已经这样做过一次,但我找不到任何关于我为使其工作所做的工作的引用。我有一个Web应用程序,我想在其中指定与我的Web服务器/jre提供的JAXB实现不同的JAXB实现。我从maven下载了适当的工件,并看到该jar已正确打包在我的war中,但是,当我启动我的Web应用程序时,我看到它仍在使用捆绑的JRE实现。我隐约记得有关我可以配置的属性文件的一些内容,但找不到有关如何配置它的引用。此外,如果我要使用的实现是相同的(只是一个较新的版本),则类名将与打包在JRE中的相同。如何指定我想使用我的WAR中捆绑的那些?编辑我目前在JBoss7.0.2上运行,使用OracleJDK1.6

java - 如何指定特定的 JAXB 实现?

好像我过去已经这样做过一次,但我找不到任何关于我为使其工作所做的工作的引用。我有一个Web应用程序,我想在其中指定与我的Web服务器/jre提供的JAXB实现不同的JAXB实现。我从maven下载了适当的工件,并看到该jar已正确打包在我的war中,但是,当我启动我的Web应用程序时,我看到它仍在使用捆绑的JRE实现。我隐约记得有关我可以配置的属性文件的一些内容,但找不到有关如何配置它的引用。此外,如果我要使用的实现是相同的(只是一个较新的版本),则类名将与打包在JRE中的相同。如何指定我想使用我的WAR中捆绑的那些?编辑我目前在JBoss7.0.2上运行,使用OracleJDK1.6