1 28 29 package mypackage; 30 31 import javax.xml.soap.*; 32 import java.util.*; 33 34 35 public class SOAPFaultTest { 36 public static void main(String [] args) { 37 try { 38 MessageFactory messageFactory = MessageFactory.newInstance(); 39 SOAPFactory soapFactory = SOAPFactory.newInstance(); 40 SOAPMessage message = messageFactory.createMessage(); 41 SOAPBody body = message.getSOAPBody(); 42 SOAPFault fault = body.addFault(); 43 44 Name faultName = 45 soapFactory.createName("Client", "", 46 SOAPConstants.URI_NS_SOAP_ENVELOPE); 47 fault.setFaultCode(faultName); 48 49 fault.setFaultString("Message does not have necessary info"); 50 fault.setFaultActor("http://gizmos.com/order"); 51 52 Detail detail = fault.addDetail(); 53 54 Name entryName = 55 soapFactory.createName("order", "PO", 56 "http://gizmos.com/orders/"); 57 DetailEntry entry = detail.addDetailEntry(entryName); 58 entry.addTextNode("Quantity element does not have a value"); 59 60 Name entryName2 = 61 soapFactory.createName("confirmation", "PO", 62 "http://gizmos.com/confirm"); 63 DetailEntry entry2 = detail.addDetailEntry(entryName2); 64 entry2.addTextNode("Incomplete address: " + "no zip code"); 65 66 message.saveChanges(); 67 68 System.out.println("Here is what the XML message looks like:"); 69 message.writeTo(System.out); 70 System.out.println(); 71 System.out.println(); 72 73 if (body.hasFault()) { 77 SOAPFault newFault = body.getFault(); 78 79 Name code = newFault.getFaultCodeAsName(); 81 82 String string = newFault.getFaultString(); 83 String actor = newFault.getFaultActor(); 84 85 System.out.println("SOAP fault contains: "); 86 System.out.println(" Fault code = " + code.getQualifiedName()); 87 System.out.println(" Local name = " + code.getLocalName()); 88 System.out.println(" Namespace prefix = " + code.getPrefix() + 89 ", bound to " + code.getURI()); 90 System.out.println(" Fault string = " + string); 91 92 if (actor != null) { 93 System.out.println(" Fault actor = " + actor); 94 } 95 96 Detail newDetail = newFault.getDetail(); 97 98 if (newDetail != null) { 99 Iterator entries = newDetail.getDetailEntries(); 100 101 while (entries.hasNext()) { 102 DetailEntry newEntry = (DetailEntry) entries.next(); 103 String value = newEntry.getValue(); 104 System.out.println(" Detail entry = " + value); 105 } 106 } 107 } 108 } catch (Exception ex) { 109 ex.printStackTrace(); 110 } 111 } 112 } 113
| Popular Tags
|