KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > objectweb > celtix > systest > callback > ServerImpl


1 package org.objectweb.celtix.systest.callback;
2
3 import java.io.File JavaDoc;
4 import java.net.URL JavaDoc;
5
6 import javax.xml.namespace.QName JavaDoc;
7 import javax.xml.ws.Service;
8
9 import org.objectweb.callback.CallbackPortType;
10 //import org.objectweb.callback.RegisterCallback;
11
import org.objectweb.callback.ServerPortType;
12 import org.objectweb.celtix.Bus;
13 import org.objectweb.celtix.bus.wsdl.WSDLManagerImpl;
14 import org.objectweb.celtix.jaxb.JAXBUtils;
15 import org.objectweb.celtix.ws.addressing.EndpointReferenceType;
16 import org.objectweb.celtix.wsdl.EndpointReferenceUtils;
17 import org.objectweb.celtix.wsdl.WSDLManager;
18
19 @javax.jws.WebService(serviceName = "SOAPService",
20                       targetNamespace = "http://objectweb.org/callback",
21                       endpointInterface = "org.objectweb.callback.ServerPortType")
22                       //wsdlLocation = "file:./wsdl/basic_callback.wsdl")
23

24 public class ServerImpl implements ServerPortType {
25
26     //private static final Logger LOG =
27
// Logger.getLogger(ServerImpl.class.getPackage().getName());
28

29     public String JavaDoc foo(String JavaDoc s) {
30         return s;
31     }
32     
33     public String JavaDoc registerCallback(EndpointReferenceType callback) {
34         
35         try {
36             Bus bus = Bus.init();
37             WSDLManager manager = new WSDLManagerImpl(bus);
38         
39             QName JavaDoc interfaceName = EndpointReferenceUtils.getInterfaceName(callback);
40             String JavaDoc wsdlLocation = EndpointReferenceUtils.getWSDLLocation(callback);
41             QName JavaDoc serviceName = EndpointReferenceUtils.getServiceName(callback);
42
43             
44             String JavaDoc portString = EndpointReferenceUtils.getPortName(callback);
45             
46             QName JavaDoc portName = new QName JavaDoc(serviceName.getNamespaceURI(), portString);
47             
48             StringBuffer JavaDoc seiName = new StringBuffer JavaDoc();
49             seiName.append(JAXBUtils.namespaceURIToPackage(interfaceName.getNamespaceURI()));
50             seiName.append(".");
51             seiName.append(JAXBUtils.nameToIdentifier(interfaceName.getLocalPart(),
52                                                       JAXBUtils.IdentifierType.INTERFACE));
53             
54             Class JavaDoc<?> sei = null;
55             try {
56                 sei = Class.forName(seiName.toString(),
57                                     true, manager.getClass().getClassLoader());
58             } catch (ClassNotFoundException JavaDoc ex) {
59                 ex.printStackTrace();
60             }
61             
62             URL JavaDoc wsdlURL = (new File JavaDoc(wsdlLocation)).toURL();
63             
64             Service service = Service.create(wsdlURL, serviceName);
65             CallbackPortType port = (CallbackPortType)service.getPort(portName, sei);
66
67             port.serverSayHi("Sean");
68   
69             bus.shutdown(true);
70             
71         } catch (Exception JavaDoc ex) {
72             ex.printStackTrace();
73             return null;
74         }
75         
76         return "registerCallback called";
77     }
78     
79     
80 }
81
Popular Tags