我正在使用Websphere 7开发一个mavenized java项目。当从命令行运行单元测试时,使用“mvn test”,它们都运行正常。但是,当它们从eclipse运行时,通过右键单击run as junit test,它们的一部分在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,当我从命令行运行时不存在。这是一个示例: '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'等等(如果有人发现它有帮助,我可以打印完整列表。)
我唯一怀疑这些罐子是破坏单位测试的罪魁祸首,我对其他建议持开放态度,可以按要求发布更多信息。我需要能够从eclipse运行它们以使它们易于管理。