Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

Source code: localjava/client/dynamic/Run.java


1   package localjava.client.dynamic;
2   
3   import javax.xml.namespace.QName;
4   
5   import org.apache.wsif.WSIFMessage;
6   import org.apache.wsif.WSIFException;
7   import org.apache.wsif.WSIFOperation;
8   import org.apache.wsif.WSIFPort;
9   import org.apache.wsif.WSIFService;
10  import org.apache.wsif.WSIFServiceFactory;
11  
12  import localjava.client.stub.addressbook.wsiftypes.Address;
13  import localjava.client.stub.addressbook.wsiftypes.Phone;
14  
15  public class Run {
16  
17      private static void addFirstAddress(WSIFPort port) {
18          try {
19              // create the operation
20              // note that we have two operations with the same name, 
21              // so we need to specify the name of the input and output 
22              // messages as well
23              WSIFOperation operation =
24                  port.createOperation(
25                      "addEntry",
26                      "AddEntryWholeNameRequest",
27                      null);
28                      
29              // create the input message associated with this operation
30              WSIFMessage input = operation.createInputMessage();
31  
32              // populate the input message
33              input.setObjectPart("name", "John Smith");
34  
35              // create an address object to populate the input
36              Address address = new Address();
37              address.setStreetNum(25);
38              address.setStreetName("Willow Road");
39              address.setCity("MyTown");
40              address.setState("PA");
41              address.setZip(28382);
42              Phone phone = new Phone();
43              phone.setAreaCode(288);
44              phone.setExchange("555");
45              phone.setNumber("9891");
46              address.setPhoneNumber(phone);
47  
48              input.setObjectPart("address", address);
49  
50              // do the invocation
51              System.out.println("Adding address for John Smith...");
52              operation.executeInputOnlyOperation(input);
53  
54          } catch (WSIFException we) {
55              System.out.println("Got exception from WSIF, details:");
56              we.printStackTrace();
57          }
58      }
59  
60      private static void addSecondAddress(WSIFPort port) {
61          try {
62  
63              // create the operation
64              // note that we have two operations with the same name, so we need to specify the
65              // name of the input and output messages as well
66              WSIFOperation operation =
67                  port.createOperation(
68                      "addEntry",
69                      "AddEntryFirstAndLastNamesRequest",
70                      null);
71  
72              // create the input message associated with this operation
73              WSIFMessage input = operation.createInputMessage();
74  
75              // populate the input message
76              input.setObjectPart("firstName", "Jane");
77              input.setObjectPart("lastName", "White");
78  
79              // create an address object to populate the input
80              Address address = new Address();
81              address.setStreetNum(20);
82              address.setStreetName("Peachtree Avenue");
83              address.setCity("Atlanta");
84              address.setState("GA");
85              address.setZip(39892);
86              Phone phone = new Phone();
87              phone.setAreaCode(701);
88              phone.setExchange("555");
89              phone.setNumber("8721");
90              address.setPhoneNumber(phone);
91  
92              input.setObjectPart("address", address);
93  
94              // do the invocation
95              System.out.println("Adding address for Jane White...");
96              operation.executeInputOnlyOperation(input);
97  
98          } catch (WSIFException we) {
99              System.out.println("Got exception from WSIF, details:");
100             we.printStackTrace();
101         }
102     }
103 
104     private static void queryAddresses(WSIFPort port) {
105         try {
106             // create the operation
107             WSIFOperation operation =
108                 port.createOperation("getAddressFromName");
109 
110             // create the input message associated with this operation
111             WSIFMessage input = operation.createInputMessage();
112             WSIFMessage output = operation.createOutputMessage();
113             WSIFMessage fault = operation.createFaultMessage();
114 
115             // populate the input message
116             input.setObjectPart("name", "John Smith");
117 
118             // do the invocation
119             System.out.println("Querying address for John Smith...");
120             if (operation.executeRequestResponseOperation(input, output, fault)) {
121                 // invocation succeeded
122                 // extract the address from the output message
123                 Address address = (Address) output.getObjectPart("address");
124                 System.out.println("Service returned the following address:");
125                 System.out.println(
126                     address.getStreetNum()
127                         + " "
128                         + address.getStreetName()
129                         + ", "
130                         + address.getCity()
131                         + " "
132                         + address.getState()
133                         + " "
134                         + address.getZip()
135                         + "; Phone: ("
136                         + address.getPhoneNumber().getAreaCode()
137                         + ") "
138                         + address.getPhoneNumber().getExchange()
139                         + "-"
140                         + address.getPhoneNumber().getNumber());
141             } else {
142                 // invocation failed, check fault message
143             }
144  
145             // create the operation
146             operation = port.createOperation("getAddressFromName");
147  
148             // create the input message associated with this operation
149             input = operation.createInputMessage();
150             output = operation.createOutputMessage();
151             fault = operation.createFaultMessage();
152  
153             // populate the input message
154             input.setObjectPart("name", "Jane White");
155  
156             // do the invocation
157             System.out.println("Querying address for Jane White...");
158             if (operation.executeRequestResponseOperation(input, output, fault)) {
159                 // invocation succeeded
160                 // extract the address from the output message
161                 Address address = (Address) output.getObjectPart("address");
162                 System.out.println("Service returned the following address:");
163                 System.out.println(
164                     address.getStreetNum()
165                         + " "
166                         + address.getStreetName()
167                         + ", "
168                         + address.getCity()
169                         + " "
170                         + address.getState()
171                         + " "
172                         + address.getZip()
173                         + "; Phone: ("
174                         + address.getPhoneNumber().getAreaCode()
175                         + ") "
176                         + address.getPhoneNumber().getExchange()
177                         + "-"
178                         + address.getPhoneNumber().getNumber());
179             } else {
180                 // invocation failed, check fault message
181             }
182         } catch (WSIFException we) {
183             System.out.println("Got exception from WSIF, details:");
184             we.printStackTrace();
185         }
186     }
187 
188     public static void main(String[] args) throws Exception {
189         if (args.length != 1) {
190             System.out.println(
191                 "Usage: java samples.java.client.dynamic.Run <wsdl location>");
192             System.exit(1);
193         }
194 
195         // create a service factory
196         WSIFServiceFactory factory = WSIFServiceFactory.newInstance();
197         WSIFService service =
198             factory.getService(
199                 args[0],
200                 null,
201                 null,
202                 "http://wsifservice.addressbook/",
203                 "AddressBook");
204 
205         // map types
206         service.mapType(
207             new QName("http://wsiftypes.addressbook/", "Address"),
208             Class.forName("localjava.client.stub.addressbook.wsiftypes.Address"));
209         service.mapType(
210             new QName("http://wsiftypes.addressbook/", "Phone"),
211             Class.forName("localjava.client.stub.addressbook.wsiftypes.Phone"));
212 
213         // get the port
214         WSIFPort port = service.getPort();
215 
216         // add the first address
217         addFirstAddress(port);
218 
219         // add the second address
220         addSecondAddress(port);
221 
222         // query addresses
223         queryAddresses(port);
224     }
225 }