00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031 package org.objectweb.proactive.ext.webservices.soap;
00032
00033 import java.io.IOException;
00034 import java.io.PrintWriter;
00035 import java.util.Hashtable;
00036
00037 import javax.servlet.http.HttpServlet;
00038 import javax.servlet.http.HttpServletRequest;
00039 import javax.servlet.http.HttpServletResponse;
00040
00041 import org.apache.soap.SOAPException;
00042 import org.apache.soap.server.DefaultConfigManager;
00043 import org.apache.soap.server.DeploymentDescriptor;
00044
00045
00050 public class WsdlServlet extends HttpServlet {
00051 public void doGet(HttpServletRequest req, HttpServletResponse res)
00052 throws IOException {
00053 DefaultConfigManager cm = new DefaultConfigManager();
00054 PrintWriter out = res.getWriter();
00055 res.setHeader("content-type", "text/xml");
00056
00057 try {
00058 String id = req.getParameter("id");
00059
00060 if (id == null) {
00061 error(out);
00062
00063 return;
00064 }
00065
00066 Hashtable options = new Hashtable();
00067 String catalinaBase = System.getProperty("catalina.base");
00068 options.put("filename",
00069 catalinaBase + "/webapps/soap/DeployedServices.ds");
00070 cm.setOptions(options);
00071 cm.loadRegistry();
00072
00073 String[] liste = cm.list();
00074
00075 DeploymentDescriptor dd = cm.query(id);
00076 if (dd == null) {
00077 error(out);
00078
00079 return;
00080 }
00081
00082 Hashtable table = dd.getProps();
00083 String wsdl = (String) table.get("Wsdl");
00084
00085 out.println(wsdl);
00086 } catch (SOAPException e) {
00087 e.printStackTrace();
00088 }
00089 }
00090
00091 private void error(PrintWriter out) {
00092 out.println("This services doesn't exists on this server.");
00093 }
00094 }