Index: /trunk/gsdl3/src/java/org/greenstone/gsdl3/SOAPServer.java.in
===================================================================
--- /trunk/gsdl3/src/java/org/greenstone/gsdl3/SOAPServer.java.in	(revision 7858)
+++ /trunk/gsdl3/src/java/org/greenstone/gsdl3/SOAPServer.java.in	(revision 7859)
@@ -21,4 +21,9 @@
 import org.greenstone.gsdl3.core.*;
 import org.w3c.dom.Element;
+import java.io.File;
+import java.io.BufferedReader;
+import java.io.FileReader;
+import java.net.URL;
+
 /**
  * The server side of a SOAP connection
@@ -32,4 +37,6 @@
     implements ModuleInterface {
   
+    private String config_file_name = "SOAPServer.cfg";
+    
   /** The message router we're talking to */
     MessageRouter mr_=null;
@@ -37,9 +44,26 @@
   /** The no-args constructor */
     public SOAPServer() {
+	// find out gsdl3home
+	URL url = ClassLoader.getSystemResource(config_file_name);
+	if (url == null) {
+	    System.err.println("Couldn't find the config file "+config_file_name+". Can't initialise the SOAP server");
+	    return;
+	}
+	String gsdl3_home = readInFile(url);
+	if (gsdl3_home == null || gsdl3_home.equals("")) {
+	    return;
+	}
+	String site_home=gsdl3_home+File.separator+"web"+File.separator+"sites"+File.separator+"@sitename@";
+	
+	File site_file = new File(site_home);
+	if (!site_file.isDirectory()) {
+	    System.err.println("The site directory "+site_file.getPath()+" doesn't exist. Can't initialsie the SOAP server.");
+	    return;
+	}   	
 	mr_ = new MessageRouter();
-	String site_home="@gsdl3home@/web/sites/@sitename@";
 	mr_.setSiteHome(site_home);	
 	mr_.configure();
-	}
+    }
+    
     
     /** Process a String request */
@@ -53,4 +77,18 @@
 	return mr_.process(xml_in);
     }
+
+    private String readInFile(URL url) {
+	
+	try {
+	    BufferedReader reader = new BufferedReader(new FileReader(url.getFile()));
+	    String line = reader.readLine();
+	    line = line.trim();
+	    return line;
+	} catch (Exception e) {
+	    System.err.println("Exception occurred when reading in the file "+url.getFile()+": "+e);
+	}
+	return null;
+    }
+
 }
 
Index: /trunk/gsdl3/src/java/org/greenstone/gsdl3/SOAPServerLocalsite.java
===================================================================
--- /trunk/gsdl3/src/java/org/greenstone/gsdl3/SOAPServerLocalsite.java	(revision 7859)
+++ /trunk/gsdl3/src/java/org/greenstone/gsdl3/SOAPServerLocalsite.java	(revision 7859)
@@ -0,0 +1,94 @@
+/*
+ *    SOAPServer.java
+ *    Copyright (C) 2002 New Zealand Digital Library, http://www.nzdl.org
+ *
+ *    This program is free software; you can redistribute it and/or modify
+ *    it under the terms of the GNU General Public License as published by
+ *    the Free Software Foundation; either version 2 of the License, or
+ *    (at your option) any later version.
+ *
+ *    This program is distributed in the hope that it will be useful,
+ *    but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *    GNU General Public License for more details.
+ *
+ *    You should have received a copy of the GNU General Public License
+ *    along with this program; if not, write to the Free Software
+ *    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+package org.greenstone.gsdl3;
+
+import org.greenstone.gsdl3.core.*;
+import org.w3c.dom.Element;
+import java.io.File;
+import java.io.BufferedReader;
+import java.io.FileReader;
+import java.net.URL;
+
+/**
+ * The server side of a SOAP connection
+ *
+ * @author <a href="mailto:kjdon@cs.waikato.ac.nz">Katherine Don</a>
+ * @version $Revision$
+ * @see <a href="http://www.w3.org/TR/SOAP/">Simple Object Access Protocol (SOAP) 1.1 </a>
+ */
+
+public class SOAPServerLocalsite
+    implements ModuleInterface {
+  
+    private String config_file_name = "SOAPServer.cfg";
+    
+  /** The message router we're talking to */
+    MessageRouter mr_=null;
+  
+  /** The no-args constructor */
+    public SOAPServerLocalsite() {
+	// find out gsdl3home
+	URL url = ClassLoader.getSystemResource(config_file_name);
+	if (url == null) {
+	    System.err.println("Couldn't find the config file "+config_file_name+". Can't initialise the SOAP server");
+	    return;
+	}
+	String gsdl3_home = readInFile(url);
+	if (gsdl3_home == null || gsdl3_home.equals("")) {
+	    return;
+	}
+	String site_home=gsdl3_home+File.separator+"web"+File.separator+"sites"+File.separator+"localsite";
+	
+	File site_file = new File(site_home);
+	if (!site_file.isDirectory()) {
+	    System.err.println("The site directory "+site_file.getPath()+" doesn't exist. Can't initialsie the SOAP server.");
+	    return;
+	}   	
+	mr_ = new MessageRouter();
+	mr_.setSiteHome(site_home);	
+	mr_.configure();
+    }
+    
+    
+    /** Process a String request */
+    public String process(String xml_in) {
+	return mr_.process(xml_in);
+	
+    }
+
+    /** Process an Element request  */
+    public Element process(Element xml_in) {
+	return mr_.process(xml_in);
+    }
+
+    private String readInFile(URL url) {
+	
+	try {
+	    BufferedReader reader = new BufferedReader(new FileReader(url.getFile()));
+	    String line = reader.readLine();
+	    line = line.trim();
+	    return line;
+	} catch (Exception e) {
+	    System.err.println("Exception occurred when reading in the file "+url.getFile()+": "+e);
+	}
+	return null;
+    }
+
+}
+
Index: unk/gsdl3/src/java/org/greenstone/gsdl3/SOAPServerLocalsite.java.in
===================================================================
--- /trunk/gsdl3/src/java/org/greenstone/gsdl3/SOAPServerLocalsite.java.in	(revision 7858)
+++ 	(revision )
@@ -1,56 +1,0 @@
-/*
- *    SOAPServer.java
- *    Copyright (C) 2002 New Zealand Digital Library, http://www.nzdl.org
- *
- *    This program is free software; you can redistribute it and/or modify
- *    it under the terms of the GNU General Public License as published by
- *    the Free Software Foundation; either version 2 of the License, or
- *    (at your option) any later version.
- *
- *    This program is distributed in the hope that it will be useful,
- *    but WITHOUT ANY WARRANTY; without even the implied warranty of
- *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *    GNU General Public License for more details.
- *
- *    You should have received a copy of the GNU General Public License
- *    along with this program; if not, write to the Free Software
- *    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-package org.greenstone.gsdl3;
-
-import org.greenstone.gsdl3.core.*;
-import org.w3c.dom.Element;
-/**
- * The server side of a SOAP connection
- *
- * @author <a href="mailto:kjdon@cs.waikato.ac.nz">Katherine Don</a>
- * @version $Revision$
- * @see <a href="http://www.w3.org/TR/SOAP/">Simple Object Access Protocol (SOAP) 1.1 </a>
- */
-
-public class SOAPServerLocalsite
-    implements ModuleInterface {
-  
-  /** The message router we're talking to */
-    MessageRouter mr_=null;
-  
-  /** The no-args constructor */
-    public SOAPServerLocalsite() {
-	mr_ = new MessageRouter();
-	String site_home="@gsdl3home@/web/sites/localsite";
-	mr_.setSiteHome(site_home);	
-	mr_.configure();
-	}
-    
-    /** Process a String request */
-    public String process(String xml_in) {
-	return mr_.process(xml_in);
-	
-    }
-
-    /** Process an Element request  */
-    public Element process(Element xml_in) {
-	return mr_.process(xml_in);
-    }
-}
-
