PowerMock 无法与 JAXB Unmarshal 一起使用

2023-11-25

我正在创建一个测试用例,其中输入 xml 并将其解组以继续处理。我正在尝试使用 PowerMock,但我不断收到

javax.xml.bind.UnmarshalException: unexpected element (uri:"http://www.xxxxxxx.org/xxxxx/xx/xx", local:"Element"). Expected elements are <{}NotifRQ>,<{http://www.xxxxxxx.org/xxxxx/xx/xx}NotifRS>,etc
    at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallingContext.handleEvent(UnmarshallingContext.java:659)
    at com.sun.xml.internal.bind.v2.runtime.unmarshaller.Loader.reportError(Loader.java:255)
    at com.sun.xml.internal.bind.v2.runtime.unmarshaller.Loader.reportError(Loader.java:250)
    at com.sun.xml.internal.bind.v2.runtime.unmarshaller.Loader.reportUnexpectedChildElement(Loader.java:117)
    at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallingContext$DefaultRootLoader.childElement(UnmarshallingContext.java:1060)
    at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallingContext._startElement(UnmarshallingContext.java:495)
    at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallingContext.startElement(UnmarshallingContext.java:477)
    at com.sun.xml.internal.bind.v2.runtime.unmarshaller.SAXConnector.startElement(SAXConnector.java:147)
    at org.apache.xerces.parsers.AbstractSAXParser.startElement(Unknown Source)
    at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown Source)
    at org.apache.xerces.impl.XMLNSDocumentScannerImpl$NSContentDispatcher.scanRootElementHook(Unknown Source)
    at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
    at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
    at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
    at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
    at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
    at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
    at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
    at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:220)
    at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:192)
    at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:136)
    at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:141)
    at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:150)
    at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:168)
    -------sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:88)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:55)
    at java.lang.reflect.Method.invoke(Method.java:613)
    at org.junit.internal.runners.TestMethod.invoke(TestMethod.java:66)
    at org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl$PowerMockJUnit44MethodRunner.runTestMethod(PowerMockJUnit44RunnerDelegateImpl.java:310)
    at org.junit.internal.runners.MethodRoadie$2.run(MethodRoadie.java:86)
    at org.junit.internal.runners.MethodRoadie.runBeforesThenTestThenAfters(MethodRoadie.java:94)
    at org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl$PowerMockJUnit44MethodRunner.executeTest(PowerMockJUnit44RunnerDelegateImpl.java:294)
    at org.powermock.modules.junit4.internal.impl.PowerMockJUnit47RunnerDelegateImpl$PowerMockJUnit47MethodRunner.executeTestInSuper(PowerMockJUnit47RunnerDelegateImpl.java:127)
    at org.powermock.modules.junit4.internal.impl.PowerMockJUnit47RunnerDelegateImpl$PowerMockJUnit47MethodRunner.executeTest(PowerMockJUnit47RunnerDelegateImpl.java:82)
    at org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl$PowerMockJUnit44MethodRunner.runBeforesThenTestThenAfters(PowerMockJUnit44RunnerDelegateImpl.java:282)
    at org.junit.internal.runners.MethodRoadie.runTest(MethodRoadie.java:84)
    at org.junit.internal.runners.MethodRoadie.run(MethodRoadie.java:49)
    at org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl.invokeTestMethod(PowerMockJUnit44RunnerDelegateImpl.java:207)
    at org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl.runMethods(PowerMockJUnit44RunnerDelegateImpl.java:146)
    at org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl$1.run(PowerMockJUnit44RunnerDelegateImpl.java:120)
    at org.junit.internal.runners.ClassRoadie.runUnprotected(ClassRoadie.java:34)
    at org.junit.internal.runners.ClassRoadie.runProtected(ClassRoadie.java:44)
    at org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl.run(PowerMockJUnit44RunnerDelegateImpl.java:122)
    at org.powermock.modules.junit4.common.internal.impl.JUnit4TestSuiteChunkerImpl.run(JUnit4TestSuiteChunkerImpl.java:106)
    at org.powermock.modules.junit4.common.internal.impl.AbstractCommonPowerMockRunner.run(AbstractCommonPowerMockRunner.java:53)
    at org.powermock.modules.junit4.PowerMockRunner.run(PowerMockRunner.java:59)
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:49)
    at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)

我以这种方式解组它:

JAXBContext jaxbContext = JAXBContext.newInstance(NotifRQ.class);
        Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();
        NotifRQ notifRQ= (NotifRQ) unmarshaller.unmarshal(new File("filename"));

我遇到了同样的问题,即 PowerMock 未能从测试资源中解组 JAXB XML 数据。

我发现这个解决方案有效:只需在下面添加这一行@RunWith(PowerMockRunner.class):

@PowerMockIgnore({ "javax.xml.*", "org.xml.sax.*" })
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PowerMock 无法与 JAXB Unmarshal 一起使用 的相关文章

随机推荐

  • 检查应用程序安装后首次运行的情况

    C 2008 3 5 SP1 我想检查该应用程序是否是第一次运行 我开发了一个应用程序 并将其安装在客户端计算机上 我想检查一下它是否是第一次运行 我已经使用 Windows 安装程序项目进行安装 if System Deployment
  • float 条形图 xaxis 标签,文本旋转 -90 度对齐问题

    我正在使用 flot 库来设计堆叠条形图 其中我使用以下 js 文件 Scripts charts excanvas js gt Scripts charts jquery flot js gt Scripts charts jquery
  • QT QML 资源文件更改后不会重新编译

    我正在 Mac 操作系统上使用 QT 5 9 1 我的项目是具有 C 逻辑和 QML UI 层的移动应用程序 所有 QML 文件都包含在 qml qrc 文件中 因此在我的 pro 文件中 资源 qml qrc qml qrc里面有我在Pr
  • Facebook 完全权限 AccessToken 替代离线访问令牌

    目前我正在使用桌面 Windows 服务下载我的 Facebook 页面见解 页面喜欢 朋友等图形数据 因此 为此我在我的 Facebook 页面上添加了应用程序并生成了完全权限的离线访问令牌 因此 我可以使用它正确下载去年的 Facebo
  • R 错误“无法找到函数‘multiplot’”使用 Cookbook 示例

    想在一页上绘制两个 ggplots 举个例子R 食谱但它不起作用 错误是could not find function multiplot 然而ggplots是可绘制的 我也重新安装了R ggplot2 重新启动等等 难道我做错了什么 li
  • 使用 extjs 在网格中显示图像

    我是 extjs 的新手 我想显示每个网格元素的图标图像 你能帮助我吗 我从 xml 文件获取图像路径 我的代码如下 这里我显示图像路径 我必须通过显示图像来替换它 Ext onReady function var store new Ex
  • C# XmlReader 的空格问题

    我有一个简单的xml
  • 检查元素和查看源代码显示两个不同的东西

    我正在使用 Google Chrome 中的 Inspect Element 来找出控制此模板网站幻灯片下方幻灯片控制器按钮大小的因素 http themefuse com demo html Medica index slider 2 h
  • 为什么 CLng 会产生不同的结果?

    这是直接来自我的 VBE MS Excel 2007 VBA 的小精华 clng 150 0 85 127 x 150 0 85 clng x 128 有人能解释这种行为吗 恕我直言 第一个表达式应该产生 128 0 5 四舍五入到最接近的
  • (new Array(x)).map 奇怪的[重复]

    这个问题在这里已经有答案了 我发现奇怪的行为 在 Chrome 上测试 1 2 map function console log arguments 1 0 Array 2 2 1 Array 2 undefined undefined 没
  • 如何使用 jQuery 检查选​​择框中是否未选择任何选项?

    我试图查看是否在选择框中选择了某个选项 如果没有 我希望它提醒一个字符串 我指的是这个链接 检查是否使用 jQuery 选择了选项 如果没有选择默认值 但它不起作用 这是我的代码
  • Sails.js 获取多对多关联计数

    我有一个模型 用户 与另一个模型 手机 有关联 这个关联是多对多的 以下调用内置于 Sails 中 允许我获取特定用户的所有电话记录 GET user userId phones 我希望能够在该调用上实现分页 但无法弄清楚如何获取结果总数
  • 创建书签来填写表格

    我想创建一个书签 用文本填充第一个 第二个 第五个和第六个文本框 这样我就可以更轻松地使用网站上的工具 因为我经常使用它并且它不记得我的输入 这些是前面带有此文字的 Vertrek gemeente Straat Aankomst geme
  • 如何检查 GPS 传感器是否存在?

    我正在编写一个方法 如果存在并启用了 GPS 传感器 该方法将返回 true 但如果不存在或已关闭 则返回 false 事实证明这很难 因为 hasSystemFeature FEATURE LOCATION GPS on PackageM
  • Java 过滤器无法设置响应标头

    我正在尝试创建一个 Java 过滤器 它检测自定义 HTTP 请求标头 并插入响应标头 以便文件自动下载 为此最重要的响应标头是 Content Type Attachment 响应标头 我创建了一个插入自定义标头的 HTTP 请求对象 f
  • 如何在 Perl 中读取系统时间和日期?

    我需要读取系统时钟 时间和日期 并在 Perl 中以人类可读的格式显示它 目前 我正在使用以下方法 我发现here usr local bin perl months qw Jan Feb Mar Apr May Jun Jul Aug S
  • 如何链接到 GitHub 上的特定行号

    我知道我可以链接到 GitHub 存储库上文件的特定行号 我确定我以前见过这个 我怎样才能做到这一点 不要只链接到行号 请务必使用规范网址也 否则 当该文件更新时 您将得到一个指向错误行的 URL 如何建立指向正确线路的永久链接 单击您想要
  • 单击时更改 Twitter Bootstrap 工具提示内容

    我在锚元素上有一个工具提示 单击时会发送 AJAX 请求 该元素有一个工具提示 来自 Twitter Bootstrap 我希望 AJAX 请求成功返回时更改工具提示内容 启动后如何操作工具提示 今天在阅读源代码时发现了这个 所以 tool
  • WPF Datepicker禁用用户输入

    我有一个日期选择器 但它允许我输入任何文本 我想禁止用户输入文本 应允许用户从日历中选择日期
  • PowerMock 无法与 JAXB Unmarshal 一起使用

    我正在创建一个测试用例 其中输入 xml 并将其解组以继续处理 我正在尝试使用 PowerMock 但我不断收到 javax xml bind UnmarshalException unexpected element uri http w