<%@ page import="java.io.*, java.util.*, org.w3c.dom.*" %> <%@ page import="org.apache.soap.Constants, org.apache.soap.util.*, org.apache.soap.util.xml.*, org.apache.soap.server.*" %>

Deploy a Service

<% String configFilename = config.getInitParameter(Constants.CONFIGFILENAME); if (configFilename == null) configFilename = application.getInitParameter(Constants.CONFIGFILENAME); ServiceManager serviceManager = org.apache.soap.server.http.ServerHTTPUtils.getServiceManagerFromContext(application, configFilename); if (!request.getMethod().equals ("POST")) { %>

Service Deployment Descriptor Template

Property Details
ID
Scope
Methods
(Whitespace separated list of method names)
Provider Type
For User-Defined Provider Type, Enter FULL Class Name:
Number of Options:
Key Value
Java Provider
Provider Class
Static?
Script Provider
Script Language
Script Filename, or
Script
Type Mappings Number of mappings:
Encoding Style Element Type Java Type Java to XML Serializer XML to Java Deserializer
Namespace URI Local Part
Default Mapping Registry Class

<% } else { String id = request.getParameter ("id"); DeploymentDescriptor dd = new DeploymentDescriptor (); dd.setID (id); // get the provider info int scope = Integer.parseInt (request.getParameter ("scope")); String providerTypeStr = request.getParameter ("providerType"); String className = request.getParameter ("providerClass"); boolean isStatic = request.getParameter ("isStatic").equals ("true"); String scriptLang = request.getParameter ("scriptLanguage"); String userClass = request.getParameter ("userProviderClassString"); if (scriptLang.equals ("other")) { scriptLang = request.getParameter ("scriptLanguageTypeIn"); } String scriptFilename = request.getParameter ("scriptFilename"); String script = request.getParameter ("script"); String methodsStr = request.getParameter ("methods"); StringTokenizer st = new StringTokenizer (methodsStr); int nTokens = st.countTokens (); String[] methods = new String[nTokens]; for (int i = 0; i < nTokens; i++) { methods[i] = st.nextToken (); } dd.setScope (scope); dd.setMethods (methods); if (providerTypeStr.equals ("0")) { dd.setProviderType (DeploymentDescriptor.PROVIDER_JAVA); dd.setProviderClass (className); dd.setIsStatic (isStatic); } else { if (providerTypeStr.equals("3")) { dd.setProviderType (DeploymentDescriptor.PROVIDER_USER_DEFINED); dd.setServiceClass(userClass); dd.setProviderClass (className); dd.setIsStatic (isStatic); // get any options int optnum = 0; try { optnum = Integer.parseInt (request.getParameter ("noOpts")); } catch (NumberFormatException e) { optnum = 0; } if (optnum != 0) { Hashtable optionsTble = new Hashtable(); for (int j = 1; j <= optnum; j++) { String keyS= request.getParameter ("optionkey" + j); String valueS= request.getParameter ("optionvalue" + j); optionsTble.put(keyS, valueS); } dd.setProps(optionsTble); } } else { if (!scriptFilename.equals ("")) { // filename specified dd.setProviderType (DeploymentDescriptor.PROVIDER_SCRIPT_FILE); } else { // there better be a script to run dd.setProviderType (DeploymentDescriptor.PROVIDER_SCRIPT_STRING); } dd.setScriptLanguage (scriptLang); dd.setScriptFilenameOrString (scriptFilename); } } String[] encs = {org.apache.soap.Constants.NS_URI_SOAP_ENC, org.apache.soap.Constants.NS_URI_XMI_ENC}; // set up any type mappings int nmaps = 0; try { nmaps = Integer.parseInt (request.getParameter ("nmaps")); } catch (NumberFormatException e) { } if (nmaps != 0) { TypeMapping[] mappings = new TypeMapping[nmaps]; for (int i = 1; i <= nmaps; i++) { // the form is hard-coded to a max of 10 int encStyle = Integer.parseInt (request.getParameter ("encstyle" + i)); String nsuri = request.getParameter ("nsuri" + i); String localPart = request.getParameter ("localpart" + i); String classNameStr = request.getParameter ("classname" + i); String java2XMLClass = request.getParameter ("java2xml" + i); String xml2JavaClass = request.getParameter ("xml2java" + i); QName elementType = (nsuri.equals ("") || localPart.equals ("")) ? null : new QName (nsuri, localPart); // map "" to null (the unfilled params come as empty strings because // they are infact actual parameters) classNameStr = classNameStr.equals ("") ? null : classNameStr; java2XMLClass = java2XMLClass.equals ("") ? null : java2XMLClass; xml2JavaClass = xml2JavaClass.equals ("") ? null : xml2JavaClass; mappings[i-1] = new TypeMapping (encs[encStyle], elementType, classNameStr, java2XMLClass, xml2JavaClass); } dd.setMappings (mappings); } String defaultSMR = request.getParameter("defaultSMR"); if (defaultSMR != null) { dd.setDefaultSMRClass(defaultSMR); } // ok now deploy it serviceManager.deploy (dd); // show what was deployed out.println ("

Service " + dd.getID () + " deployed.

"); } %>