1 package org.codehaus.xfire.transport.http;
2
3 import java.net.URL;
4 import java.util.Enumeration;
5
6 import javax.servlet.ServletException;
7
8 import org.apache.commons.logging.Log;
9 import org.apache.commons.logging.LogFactory;
10 import org.codehaus.xfire.util.XMLServiceBuilder;
11
12 /***
13 * XFire Servlet as Dispatcher including a configuration<br>
14 * of XFire from services.xml in classpath<br>
15 * <p>
16 */
17 public class XFireConfigurableServlet
18 extends XFireServlet
19 {
20
21 private final static String CONFIG_FILE = "META-INF/xfire/services.xml";
22
23 private final static String ENCODING_STYLE_URI = "http://schemas.xmlsoap.org/soap/encoding/";
24
25 private final static String SOAP_12 = "1.2";
26
27 private Log log = LogFactory.getLog(XFireConfigurableServlet.class);
28
29 /***
30 * @see javax.servlet.Servlet#init()
31 */
32 public void init()
33 throws ServletException
34 {
35 super.init();
36 try
37 {
38 configureXFire();
39 }
40 catch (Exception e)
41 {
42 log.error("Couldn't configure XFire", e);
43 }
44 }
45
46 protected void configureXFire()
47 throws Exception
48 {
49 XMLServiceBuilder builder = new XMLServiceBuilder(getXFire());
50 log.info("Searching for META-INF/xfire/services.xml");
51
52
53 Enumeration en = getClass().getClassLoader().getResources(CONFIG_FILE);
54 while (en.hasMoreElements())
55 {
56 URL resource = (URL) en.nextElement();
57
58 builder.buildServices( resource.openStream() );
59 }
60 }
61
62 }