2

我正在使用Websphere 7开发一个mavenized java项目。当单元测试从命令行运行时,使用“mvn test”,它们都运行正常。但是,当它们从 Eclipse 运行时,通过右键单击作为 junit 测试运行,它们中的一部分在 Web 服务调用中失败,因为“javax.xml.ws.WebServiceException: org.w3c.dom.DOMException: HIERARCHY_REQUEST_ERR: 尝试是在不允许的地方插入一个节点。”

原因:org.w3c.dom.DOMException:HIERARCHY_REQUEST_ERR:试图插入不允许的节点。

at org.apache.xerces.dom.CoreDocumentImpl.insertBefore(Unknown Source)
at org.apache.xerces.dom.NodeImpl.appendChild(Unknown Source)
at com.ibm.ws.webservices.engine.xmlsoap.SOAPPart.appendChild(SOAPPart.java:282)
at com.sun.xml.internal.bind.marshaller.SAX2DOMEx.startElement(SAX2DOMEx.java:165)
at com.sun.xml.internal.ws.message.AbstractMessageImpl.writeTo(AbstractMessageImpl.java:147)
at com.sun.xml.internal.ws.message.AbstractMessageImpl.readAsSOAPMessage(AbstractMessageImpl.java:182)
at com.sun.xml.internal.ws.handler.SOAPMessageContextImpl.getMessage(SOAPMessageContextImpl.java:68)

我查看了 eclipse 中的运行配置,我确信它们使用相同的(sun 1.6)JDK 来运行。

在这两种情况下,我都打印了我的类路径,我发现唯一的区别是,当我从 Eclipse 运行时,我有 46 个 ibm jar,而当我从命令行运行时,这些 jar 不存在。这是一个示例:'C:\Program Files (x86)\IBM\WebSphere\AppServer\plugins\com.ibm.ws.ejbportable.jar'、'C:\Program Files (x86)\IBM\WebSphere\AppServer\ plugins\com.ibm.ws.jpa.jar', 'C:\Program Files (x86)\IBM\WebSphere\AppServer\installedConnectors\wmq.jmsra.rar\dhbcore.jar', 'C:\Program Files (x86 )\IBM\WebSphere\AppServer\plugins\com.ibm.ws.admin.core.jar', 'C:\Program Files (x86)\IBM\WebSphere\AppServer\installedConnectors\wmq.jmsra.rar\com.ibm .mq.headers.jar' 等(如果有人觉得有帮助,我可以打印完整列表)。

只是我怀疑这些 jar 是破坏单元测试的罪魁祸首,我对其他建议持开放态度,可以根据要求发布更多信息。我需要能够从 Eclipse 运行它们以使调试它们易于管理。

4

0 回答 0