protected Throwable getProtocolException() { try { SOAPFault fault = SOAPVersion.SOAP_12.getSOAPFactory().createFault(); ; if (reason != null) { for (TextType tt : reason.texts()) { fault.setFaultString(tt.getText()); } } if (code != null) { fault.setFaultCode(code.getValue()); fillFaultSubCodes(fault, code.getSubcode()); } if (detail != null && detail.getDetail(0) != null) { javax.xml.soap.Detail detail = fault.addDetail(); for (Node obj : this.detail.getDetails()) { Node n = fault.getOwnerDocument().importNode(obj, true); detail.appendChild(n); } } if (node != null) { fault.setFaultNode(node); } return new ServerSOAPFaultException(fault); } catch (SOAPException e) { throw new WebServiceException(e); } }
@Validated @Test public final void testCreateDetailEntryUsingCreateElementNS() throws Exception { SOAPFault fault = createEmptySOAPFault(); Detail detail = fault.addDetail(); detail.appendChild(fault.getOwnerDocument().createElementNS("urn:ns", "p:test")); Iterator<?> it = detail.getDetailEntries(); assertTrue(it.hasNext()); // The implementation silently replaces the Element by a DetailEntry DetailEntry detailEntry = (DetailEntry) it.next(); assertEquals("urn:ns", detailEntry.getNamespaceURI()); assertEquals("test", detailEntry.getLocalName()); }