In the previous chapter we extended Echoserver. We have configured QuickServer in the class, in some cases this is acceptable. However, many applications more hope that users can dynamically configure applications after application startup. Add this feature to QuickServer, you can tell the server to read the XML file and instantiate it.
To configure QuickServer to first write a configuration file, then tell QuickServer to load this configuration. Here is a very simple profile
echoserver.echocommandhandler
client-command-handler>
quickServer>
There are now two ways to start the server
Use QuickServer boot parameters - Load here you have to do this to specify the path to the XML configuration file when starting QuickServer. For example java -jar QuickServer.jar -load myxmlconfig.xml or java org.quickserver.net.server.QuickServer -load myxmlconfig.xml or quickserver.bat -load myxmlconfig.xml QuickServer use of initService () method Sometimes you might need to start Use your own JAR file or class file when your app, or you may want to add some code before starting, then this choice is the most appropriate. The following code initializes QuickServer through an XML configuration file. QuickServer myServer = new quickServer (); // pick the xml file form config folderstring conffile = "conf" file.separator "myserver.xml"; object config [] = new object [] {conffile}; if (MyServer. INITSERVICE (config)! = true) {system.err.println ("Could't INIT Server !!);
Now let's write to our EchoServer write profiles. Below is an XML file
01
02
03
04
05
06
07 echoserver.echocommandhandler
08 client-command-handler>
09
10 echoserver.echoServerquickAuthenNTor
11 Authenticator>
12
13 Echoserver.echoserverPoolableData
14 client-data>
15
16
In one
18
19
20
22
23
24
25 Server Busy / NMAX Connection Reached
26 max-connection-msg>
27
28
29
30 Object-pool>
31
32
33
34
35
36
37
38 eChoServer.qsadmincommandplugin
39 command-plugin>
40 qsadmin-server>
4142 QuickServer>
Below is a modified echoserver.java file, it can now load configuration from XML file
01 Package EchoServer;
02
03 Import Org.quickServer.net. *;
04 Import Org.quickServer.net.server. *;
05
06 import java.io. *;
07 Import java.util.logging. *;
08
09 public class echoserver {
10 public static void main (String s []) {
11
12 QuickServer myserver = new quickserver ();
13
14 // setup logger to log to file
15 logger logger = NULL;
16 FileHandler XMLLog = NULL;
17 FileHandler txtlog = NULL;
18 File log = new file ("./ log /");
19 IF (! Log.canread ()))
20 log.mkdir ();
21 try {
22 logger = logger.getlogger ("Org.quickServer.Net"); // Get Qs Logger
23 logger.setlevel (level.finest);
24 xmllog = New FileHandler ("log / echoServer.xml);
25 logger.addhandler (XMLLOG);
26
27 logger = logger.getlogger ("echoserver"); // Get App Logger
28 logger.setlevel (level.finest);
29 txtLog = New FileHandler ("log / echoServer.txt"); 30 txtLog.setFormatter (New SimpleFormatter ());
31 logger.addhandler (txtlog);
32 // img: sets logger to be used for app.
33 MyServer.SetApplogger (Logger);
34} catch (ioException e) {
35 System.err.Println ("Could Not Create XMLLog FileHandler: E);
36}
37
38 // Store Data Needed to Be Changd by qsadminserver
39 Object [] store = new object [] {"12.00"};
40 MyServer.SetStoreObjects (Store);
41
42 // Load Quick Server from XML
43 string conffile = "config" file.seParetor "echoserver.xml";
44 Object config [] = new object [] {conffile};
45 IF (MyServer.initService (config) == true) {
46 try {
47 myserver.startqsadminserver ();
48 myserver.startServer ();
49} catch (APPEXCEPTION E) {
50 System.out.println ("Error IN Server:" E);
51} catch (Exception E) {
52 System.out.println ("Error:" E);
53}
54}
55}
56}
57 Want to know more XML configuration refers to the Quick Server Java document (the home page has an XML sample) and an example provided by QuickServer.