KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > jfun > yan > xfire > XFireYanServlet


1 package jfun.yan.xfire;
2
3
4 import javax.servlet.ServletConfig JavaDoc;
5 import javax.servlet.ServletException JavaDoc;
6
7 import jfun.util.ClassLoaderUtils;
8 import jfun.yan.Container;
9 import jfun.yan.web.YanLoader;
10
11 import org.codehaus.xfire.XFire;
12 import org.codehaus.xfire.transport.http.XFireServlet;
13 import org.codehaus.xfire.transport.http.XFireServletController;
14
15
16 /**
17  * An servlet which exposes XFire services via Yan.
18  *
19  */

20 public class XFireYanServlet
21     extends XFireServlet
22 {
23     private final String JavaDoc default_xfire = "xfire";
24     private final String JavaDoc default_controller = "xfire.servletController";
25     private YanLoader loader;
26     private Container yan;
27     private String JavaDoc xfire_name;
28     private String JavaDoc controller_name;
29     private String JavaDoc getXfireName(ServletConfig JavaDoc servletConfig){
30       return getParamValue(servletConfig, "XFireBeanName", default_xfire);
31     }
32     private String JavaDoc getControllerName(ServletConfig JavaDoc config){
33       return getParamValue(config, "XFireControllerName", default_controller);
34     }
35     private String JavaDoc getParamValue(ServletConfig JavaDoc config, String JavaDoc key, String JavaDoc def){
36       String JavaDoc val = config.getInitParameter(key);
37       if((val != null) && (!"".equals(val.trim()))){
38         return val;
39       }
40       else{
41         return def;
42       }
43     }
44     public void init(ServletConfig JavaDoc servletConfig)
45         throws ServletException JavaDoc{
46       this.xfire_name = getXfireName(servletConfig);
47       this.controller_name = getControllerName(servletConfig);
48       this.loader = new XFireLoader(xfire_name);
49
50       this.yan = loader.initContainer(ClassLoaderUtils.guessClassLoader(getClass().getClassLoader()),
51           servletConfig.getServletContext());
52       if(this.yan==null){
53         throw new IllegalStateException JavaDoc("Failed to bootstrap Yan.");
54       }
55       super.init(servletConfig);
56       System.out.println("services: " + super.getXFire().getServiceRegistry().getServices());
57     }
58
59     public XFire createXFire(){
60       return (XFire)yan.getInstance(this.xfire_name);
61     }
62     public XFireServletController createController(){
63       return (XFireServletController)yan.getInstance(this.controller_name);
64     }
65     public void destroy() {
66       loader.destroy(getServletContext());
67       super.destroy();
68     }
69 }
70
Popular Tags