KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > demo > callback > server > ServerImpl


1 package demo.callback.server;
2
3 import java.net.URL JavaDoc;
4
5 import javax.xml.namespace.QName JavaDoc;
6 import javax.xml.ws.Service;
7
8 import org.objectweb.callback.CallbackPortType;
9 import org.objectweb.callback.ServerPortType;
10 import org.objectweb.celtix.Bus;
11 import org.objectweb.celtix.bus.wsdl.WSDLManagerImpl;
12 import org.objectweb.celtix.jaxb.JAXBUtils;
13 import org.objectweb.celtix.ws.addressing.EndpointReferenceType;
14 import org.objectweb.celtix.wsdl.EndpointReferenceUtils;
15 import org.objectweb.celtix.wsdl.WSDLManager;
16
17
18
19 @javax.jws.WebService(name = "ServerPortType ", serviceName = "SOAPService",
20                       targetNamespace = "http://objectweb.org/callback",
21                       wsdlLocation = "file:./wsdl/basic_callback.wsdl")
22                   
23 public class ServerImpl implements ServerPortType {
24     
25     public String JavaDoc registerCallback(EndpointReferenceType callback) {
26         
27         try {
28             Bus bus = Bus.init();
29             WSDLManager manager = new WSDLManagerImpl(bus);
30         
31             QName JavaDoc interfaceName = EndpointReferenceUtils.getInterfaceName(callback);
32             String JavaDoc wsdlLocation = EndpointReferenceUtils.getWSDLLocation(callback);
33             QName JavaDoc serviceName = EndpointReferenceUtils.getServiceName(callback);
34             String JavaDoc portString = EndpointReferenceUtils.getPortName(callback);
35             
36             QName JavaDoc portName = new QName JavaDoc(serviceName.getNamespaceURI(), portString);
37             
38             StringBuffer JavaDoc seiName = new StringBuffer JavaDoc();
39             seiName.append(JAXBUtils.namespaceURIToPackage(interfaceName.getNamespaceURI()));
40             seiName.append(".");
41             seiName.append(JAXBUtils.nameToIdentifier(interfaceName.getLocalPart(),
42                                                       JAXBUtils.IdentifierType.INTERFACE));
43             
44             Class JavaDoc<?> sei = null;
45             try {
46                 sei = Class.forName(seiName.toString(),
47                                     true, manager.getClass().getClassLoader());
48             } catch (ClassNotFoundException JavaDoc ex) {
49                 ex.printStackTrace();
50             }
51             
52             URL JavaDoc wsdlURL = new URL JavaDoc(wsdlLocation);
53             
54             Service service = Service.create(wsdlURL, serviceName);
55             CallbackPortType port = (CallbackPortType)service.getPort(portName, sei);
56
57             System.out.println("Invoking on callback object");
58             String JavaDoc resp = port.serverSayHi(System.getProperty("user.name"));
59             System.out.println("Response from callback object: " + resp);
60   
61             bus.shutdown(true);
62             
63         } catch (Exception JavaDoc ex) {
64             ex.printStackTrace();
65             return null;
66         }
67         
68         return "registerCallback called";
69     }
70     
71     
72 }
73
Popular Tags