QuickServer开发指南(8)- XML配置

翻译 2005年02月28日 17:05:00
    在前面的章节里我们扩展了EchoServer。我们已经在类中配置了QuickServer,在某些情况下这是可接受的。但是很多应用更希望用户能够在应用启动后动态配置应用。给QuickServer添加这方面功能,你可以告诉服务器读取XML文件并实例化它。
    要配置QuickServer首先要写配置文件,然后告诉QuickServer加载这个配置。下面是一个非常简单的配置文件
    <quickserver>
        <name>EchoServer v 1.0</name>
        <client-command-handler>
            echoserver.EchoCommandHandler
        </client-command-handler>
    </quickserver>
    现在有两种方式启动服务器
  • 使用QuickServer启动参数--load
    在这里你要做的是在启动QuickServer时使用"-load"指定xml配置文件的路径。例如
    java -jar QuickServer.jar -load myxmlconfig.xml

    java org.quickserver.net.server.QuickServer -load myxmlconfig.xml

    quickserver.bat -load myxmlconfig.xml
  • 使用QuickServer的initService()方法
    有时你可能需要在启动你的应用时使用自己的jar文件或类文件,或者你可能想要在启动前添加一些代码,那么这个选择是最合适的。下面的代码通过xml配置文件初始化了QuickServer。
    QuickServer myServer = new QuickServer();
    //pick the xml file form config folder
    String confFile = "conf" + File.separator + "MyServer.xml";
    Object config[] = new Object[] {confFile};
    if(myServer.initService(config) != true) {
    System.err.println("Could't init server !!");
    }

现在我们来给我们的EchoServer写配置文件。下面是XML文件

01 <quickserver>

02 <name>EchoServer v 1.0</name>

03 <port>4123</port>

04 <bind-address>127.0.0.1</bind-address>

05

06 <client-command-handler>

07 echoserver.EchoCommandHandler

08 </client-command-handler>

09 <authenticator>

10 echoserver.EchoServerQuickAuthenticator

11 </authenticator>

12 <client-data>

13 echoserver.EchoServerPoolableData

14 </client-data>

15

16 <console-logging-level>INFO</console-logging-level>

17

18 <!-- some extra config. added just to show -->

19 <timeout>4</timeout>

20 <timeout-msg>-ERR Timeout</timeout-msg>

21 <max-auth-try>5</max-auth-try>

22 <max-auth-try-msg>-ERR Max Auth Try Reached</max-auth-try-msg>

23 <max-connection>-1</max-connection>

24 <max-connection-msg>

25 Server Busy/nMax Connection Reached

26 </max-connection-msg>

27 <object-pool>

28 <max-active>-1</max-active>

29 <max-idle>15</max-idle>

30 </object-pool>

31 <!-- some extra config. added just to show -->

32

33 <qsadmin-server>

34 <name>EchoAdmin v 1.0</name>

35 <port>4124</port>

36 <bind-address>127.0.0.1</bind-address>

37 <command-plugin>

38 echoserver.QSAdminCommandPlugin

39 </command-plugin>

40 </qsadmin-server>

41
42 </quickserver>


下面是修改过的EchoServer.java文件,它现在可以从xml文件加载配置

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 changed by QSAdminServer

39 Object[] store = new Object[]{"12.00"};

40 myServer.setStoreObjects(store);

41

42 //load QuickServer from xml

43 String confFile = "config"+File.separator+"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

    想要知道更多的XML配置请参考QuickServer Java文档(主页有一个xml样本)以及QuickServer提供的例子。

QuickServer开发指南(1)- 介绍

    QuickServer是一个免费的开源Java库,用于快速创建健壮的多线程、多客户端TCP服务器应用程序。使用QuickServer,用户可以只集中处理应用程序的逻辑/协议,从而方便的建立功能...
  • clearwater21cn
  • clearwater21cn
  • 2005年02月22日 11:24
  • 17738

QuickServer自学笔记(一)

因为最近要写一个CS架构的程序,客户端用的Vb6.0,服务器端我用的QuickServer,因为QuickServer对我来说,是一个新的东西,所以我计划写博客写下我的学习路程。 对于QuikSe...
  • zanglaowei
  • zanglaowei
  • 2015年09月01日 16:07
  • 1798

QuickServer开发指南(8)- XML配置

    在前面的章节里我们扩展了EchoServer。我们已经在类中配置了QuickServer,在某些情况下这是可接受的。但是很多应用更希望用户能够在应用启动后动态配置应用。给QuickServer...
  • clearwater21cn
  • clearwater21cn
  • 2005年02月28日 17:05
  • 5392

QuickServer

QuickServer是个java开元框架,很方面很容易实现多线程、多客户端TCP服务应用。今天在QuickServer网站http://www.quickserver.org/下载文档Develop...
  • educast
  • educast
  • 2013年10月28日 22:25
  • 2051

QuickServer开发指南(2)- 安装

1. 运行环境QuickServer 1.2以上的版本需要(其实在偶看来一个1.4版以上JDK足矣):  推荐1.4版以上Java虚拟机,最低1.3版(未经测试).  Java Logging API...
  • clearwater21cn
  • clearwater21cn
  • 2005年02月23日 18:42
  • 8479

QuickServer.jar

  • 2012年08月16日 19:06
  • 236KB
  • 下载

QuickServer开发指南

  • 2011年06月28日 13:40
  • 210KB
  • 下载

QuickServer开发指南(7)- 使用和定制日志

    对任何一个项目来说,日志都是一个重要的工具。日志帮助我们去理解我们的项目内部发生了什么,它也会提供审核和调试信息。想要知道更多有关日志的资料可查阅Sun公司的网站    http://java...
  • clearwater21cn
  • clearwater21cn
  • 2005年02月28日 15:19
  • 4774

QuickServer开发指南

  • 2012年05月30日 08:32
  • 550KB
  • 下载

quickServer开发指南

  • 2009年07月17日 16:58
  • 478KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:QuickServer开发指南(8)- XML配置
举报原因:
原因补充:

(最多只允许输入30个字)