三、Web服务配置文件
3. HTTP服务配置文件
Web 服务配置文件采用 JSON 的格式进行服务配置。
3.1 服务配置文件
配置文件路径: /conf/web.json
- 配置服务启动参数。
- 配置过滤器的定义和工作顺序,请求正向顺序执行,响应倒向顺序执行。
- 注册路由处理器,会被自动初始化到
WebServer
中。
具体说明请看一下文件的注释信息。
{
"Host" : "0.0.0.0", // 服务 IP 地址,默认0.0.0.0
"Port" : 28080, // 服务端口,默认8080
"Timeout" : 30, // 连接超时时间(s),默认30秒
"IndexFiles" : "index.htm,index.html...", //定义首页索引文件的名称
"ContextPath" : "WEBAPP", // 上下文路径,绝对路径 "/"起始,相对路径 非"/" 起始,默认是WEBAPP
"MatchRouteIgnoreCase" : true, // 匹配路由不区分大小写,默认是 false
"CharacterSet" : "GB2312", // 默认字符集,默认 UTF-8
"SessionContainer" : "java.util.Hashtable", // Session 容器类,默认java.util.Hashtable
"SessionTimeout" : 30, // Session 会话超时时间(m),默认30分钟
"KeepAliveTimeout" : 60, // KeepAlive 超时时间(s),默认60秒,如果值小于0则不启用 KeepAlive 设置 (该参数同样会被应用到 WebSocket 的连接保持上)
"Gzip" : false, // 是否启用Gzip压缩,默认 true
"AccessLog" : true, // 是否记录access.log,默认 true
"Monitor" : true, // 是否提供监控服务,默认 false
//HTTPS证书配置
"Https": {
"CertificateFile" : "/src/test/java/org/voovan/test/network/ssl/ssl_ks", // HTTPS 证书
"CertificatePassword" : "passStr", // HTTPS 证书密码
"KeyPassword" : "123123", // HTTPS 证书Key 密码
},
// 过滤器配置节点 请求 先执行filter1, 后执行filter2,响应则相反
"Filters": [
{
"Name" : "filter1",
"ClassName" : "org.voovan.test.http.HttpFilterTest",
"Encoding" : "UTF-8",
"Action" : "pass" },
{
"Name" : "filter2",
"ClassName" : "org.voovan.test.http.HttpFilterTest",
"Encoding" : "UTF-8",
"Action" : "pass" },
{
"Name" : "filter3",
"ClassName" : "org.voovan.test.http.HttpFilterTest",
"Encoding" : "UTF-8",
"Action" : "pass" }
],
//路由管理器配置节点
"Routers": [
{
"name": "配置路由测试", //路由名称
"Route": "/configRouter", //Http请求路径
"Method": "GET", //Http请求方法
"ClassName": "org.voovan.test.http.router.HttpTestRouter" //Http 路由处理器
}
],
//模块配置节点
"Modules": [{
"Name": "性能监控模块", //模块名称
"Path": "/VoovanMonitor", //模块路径
"ClassName": "org.voovan.http.monitor.Monitor" //模块处理器
}]
}
也可以通过自己构造org.voovan.http.server.context.WebServerConfig
对象来通过带参数的构造方法初始化HttpServer
,带参数的构造方法如下:
public WebServer(WebServerConfig config) throws IOException
3.2 MIME类型配置文件
非必要文件,系统会默认加载一个内部的 mime 定义文件,如果用户自定义了 mime.json 会自动覆盖系统的mime定义配置文件路径: /conf/mime.json
配置方式: "文件类型":"MIME 类型"
{
"123": "application/vnd.lotus-1-2-3",
"3dml": "text/vnd.in3d.3dml",
"3ds": "image/x-3ds",
"3g2": "video/3gpp2",
"3gp": "video/3gpp",
......
}
3.3.异常类型配置文件
配置文件路径: /conf/error.json
{
//静态文件访问未找到目标文件
"org.hocate.http.server.exception.ResourceNotFound":{ //异常类
"StatusCode" :404, //返回的错误码,默认值500
"Page" :"Error.html", //异常处理页面,默认值Error.html,默认保存目录/conf/error-page
"Description" :"The request file is not found." //错误描述信息,默认值Java栈的信息
}
......
}