• 三、Web服务配置文件
    • 3. HTTP服务配置文件
      • 3.1 服务配置文件
        • 具体说明请看一下文件的注释信息。
    • 3.2 MIME类型配置文件
    • 3.3.异常类型配置文件

    三、Web服务配置文件

    3. HTTP服务配置文件

    Web 服务配置文件采用 JSON 的格式进行服务配置。


    3.1 服务配置文件

    配置文件路径: /conf/web.json

    • 配置服务启动参数。
    • 配置过滤器的定义和工作顺序,请求正向顺序执行,响应倒向顺序执行。
    • 注册路由处理器,会被自动初始化到 WebServer 中。
    具体说明请看一下文件的注释信息。
    1. {
    2. "Host" : "0.0.0.0", // 服务 IP 地址,默认0.0.0.0
    3. "Port" : 28080, // 服务端口,默认8080
    4. "Timeout" : 30, // 连接超时时间(s),默认30秒
    5. "IndexFiles" : "index.htm,index.html...", //定义首页索引文件的名称
    6. "ContextPath" : "WEBAPP", // 上下文路径,绝对路径 "/"起始,相对路径 非"/" 起始,默认是WEBAPP
    7. "MatchRouteIgnoreCase" : true, // 匹配路由不区分大小写,默认是 false
    8. "CharacterSet" : "GB2312", // 默认字符集,默认 UTF-8
    9. "SessionContainer" : "java.util.Hashtable", // Session 容器类,默认java.util.Hashtable
    10. "SessionTimeout" : 30, // Session 会话超时时间(m),默认30分钟
    11. "KeepAliveTimeout" : 60, // KeepAlive 超时时间(s),默认60秒,如果值小于0则不启用 KeepAlive 设置 (该参数同样会被应用到 WebSocket 的连接保持上)
    12. "Gzip" : false, // 是否启用Gzip压缩,默认 true
    13. "AccessLog" : true, // 是否记录access.log,默认 true
    14. "Monitor" : true, // 是否提供监控服务,默认 false
    15. //HTTPS证书配置
    16. "Https": {
    17. "CertificateFile" : "/src/test/java/org/voovan/test/network/ssl/ssl_ks", // HTTPS 证书
    18. "CertificatePassword" : "passStr", // HTTPS 证书密码
    19. "KeyPassword" : "123123", // HTTPS 证书Key 密码
    20. },
    21. // 过滤器配置节点 请求 先执行filter1, 后执行filter2,响应则相反
    22. "Filters": [
    23. {
    24. "Name" : "filter1",
    25. "ClassName" : "org.voovan.test.http.HttpFilterTest",
    26. "Encoding" : "UTF-8",
    27. "Action" : "pass" },
    28. {
    29. "Name" : "filter2",
    30. "ClassName" : "org.voovan.test.http.HttpFilterTest",
    31. "Encoding" : "UTF-8",
    32. "Action" : "pass" },
    33. {
    34. "Name" : "filter3",
    35. "ClassName" : "org.voovan.test.http.HttpFilterTest",
    36. "Encoding" : "UTF-8",
    37. "Action" : "pass" }
    38. ],
    39. //路由管理器配置节点
    40. "Routers": [
    41. {
    42. "name": "配置路由测试", //路由名称
    43. "Route": "/configRouter", //Http请求路径
    44. "Method": "GET", //Http请求方法
    45. "ClassName": "org.voovan.test.http.router.HttpTestRouter" //Http 路由处理器
    46. }
    47. ],
    48. //模块配置节点
    49. "Modules": [{
    50. "Name": "性能监控模块", //模块名称
    51. "Path": "/VoovanMonitor", //模块路径
    52. "ClassName": "org.voovan.http.monitor.Monitor" //模块处理器
    53. }]
    54. }

    也可以通过自己构造org.voovan.http.server.context.WebServerConfig对象来通过带参数的构造方法初始化HttpServer,带参数的构造方法如下:

    1. public WebServer(WebServerConfig config) throws IOException

    3.2 MIME类型配置文件

    非必要文件,系统会默认加载一个内部的 mime 定义文件,如果用户自定义了 mime.json 会自动覆盖系统的mime定义配置文件路径: /conf/mime.json


    配置方式: "文件类型":"MIME 类型"

    1. {
    2. "123": "application/vnd.lotus-1-2-3",
    3. "3dml": "text/vnd.in3d.3dml",
    4. "3ds": "image/x-3ds",
    5. "3g2": "video/3gpp2",
    6. "3gp": "video/3gpp",
    7. ......
    8. }

    3.3.异常类型配置文件

    配置文件路径: /conf/error.json

    1. {
    2. //静态文件访问未找到目标文件
    3. "org.hocate.http.server.exception.ResourceNotFound":{ //异常类
    4. "StatusCode" :404, //返回的错误码,默认值500
    5. "Page" :"Error.html", //异常处理页面,默认值Error.html,默认保存目录/conf/error-page
    6. "Description" :"The request file is not found." //错误描述信息,默认值Java栈的信息
    7. }
    8. ......
    9. }