<!--
<?xml version="1.0" encoding="gb2312"?>
这个文件是 JSWDK server 缺省的配置文件。下面是 JSWDK server 配置项目的说明。
========================================================
webserver.xml 文件的 dtd 和 xml(格式说明):
元素
属性(等)
子元素(等)
========================================================
WebServer - 由一个单独的 HTTP Web Server 实例管理的一套web services 的集合。
id - 一个唯一的 Web Server 的 id
adminPort - 用于从外部对 Web Server 进行管理,例如便捷的执行关闭 Web Server 等管理功能,的端口号。(注:这些管理功能目前还没有提供,这是下一步考虑发展的目标)
Service - 一个可以被管理的 web service。
Service - 一个可以通过完全合理的网络地址访问的单独的网络资源。
id - 一个唯一的 Service 的 id。
port - Service 所注册的端口号。
hostName - Service 存放的主机的主机名。
inet - Service 存放的主机的 ip 值。
docBase - Service 主文档的本地文件存放的相对路径.
workDir - Service 本地工作记录存放的相对路径.
workDirIsPersistent - 注明 Web Server 是否在主机系统关闭的时候把相关的工作文件夹存放到指定的工作目录。
WebApplication - 一个对网络资源进行管理功能的集合
WebApplication - 一个可以对完全合理的网络地址作出反应的相关联的网络资源的集合
id - 一个唯一的 Web Application 的 id.
mapping - 可以通过 Service 的路径访问该 Web Application 映射的 URL 前缀
docBase - 存放该 Web Application 的主文档的相对路径
maxInactiveInterval - session 最长的过期时间
========================================================
startserver 命令 参数:
-help 显示帮助信息
-config [file|url] 从指定的文件,或者 [file|url] 读取配置信息
-noconfig 不读取配置信息
-adminport [int] 指定管理端口
-serviceid [str] 开始指定的 serviceid 的服务
-port[:id|:*] [int] 监听指定的 serviceid 的服务的端口
-inet[:id|:*] [inetaddr] 把新的 [inetaddr] 的 ip 的服务器绑定到指定的 serviceid 的服务
-hostname[:id|:*] [name] 使用新的主机名 [name] 作为指定的 serviceid 的服务的主机名
-docbase[:id|:*] [name] 使用 URL 地址[name] 作为指定的 serviceid 的服务的主文档
-workdir[:id|:*] [name] 使用 [name] 位置的文件夹作为指定 serviceid 的服务的工作记录文件夹
========================================================
属性配置的详细说明:
同一类元素的 “id” 必须唯一。
绝大多数配置项目的值可以通过以下三种不同的方法之一来设置
1。 startserver 命令的参数
2。 xml 文件的对应配置项目的值
3。 xml 文件的 dtd 为对应的配置项目设置的 and/or 的缺省值
很多配置项目,都在 xml 的 dtd 中,或者在 JSWDK 中有缺省的值。这些缺省的值可以通过修改 startserver 命令导入的存放配置信息的 webserver.xml 文件的元素及元素属性的值来更替。
JSWDK 服务器在某些平台上可以使用缺省的 webserver.xml 里设置的配置信息,不需要做任何调整,就可以使用。
如果 JSWDK 服务器在初始化的时候,如果没有在安装目录发现保存配置信息的 webserver.xml 文件,同时在使用 startserver 命令时也没有使用 “-config [file | url]” 参数来指定一个包含配置信息的文件的话,那么 JSWDK 服务器就会自己创建一个缺省的配置文件。
如果没有指定一个 WebServer 的管理端口,那么 JSWDK 服务器就会在开启时,在端口 2048 - 8192 之间随机尝试 5 次,寻找一个有效的端口作为管理端口,如果成功,被选中的端口就会被写入 “webserverlog.txt” 文件中。如果没有指定 WebServer 的管理端口,同时JSWDK 尝试寻找端口的努力也失败的话,则服务器不会被启动。
元素 WebServer 的 id 属性,可能会在以后的版本中被取消。
元素 WebApplication 的 mapping 属性是标注一个 URI 前缀,使得可以通过相应的地址来访问该 Web Application 的一个实例。该元素属性的值在同一个 Service 的实例中必须是唯一。在以后的版本中,该元素属性的名称可能被修改为“path” 。
元素 WebApplication 的 docBase 属性是当该 Web Application 被网络访问调用时,Web Server 可以找到该 Web Application 的物理路径。该元素属性的值的描述和上面的 元素 Server 的 docBase 属性的描述有很多相似点。
元素 WebApplication 的 maxInactiveInterval 属性在目前还没有被使用。在后继的版本中可能作为指定 “session 过期的时间” 来使用。
========================================================
另注:
只要使用符合已经注明的 dtd 格式和相应规则,来书写 xml 的内容,很多Service 和 Web Application 实例的配置信息都可以很方便的添加到一个已经存在的 Web Server 的配置信息中。
========================================================
<!DOCTYPE WebServer [
<!ELEMENT WebServer (Service+)>
<!ATTLIST WebServer
id ID #REQUIRED
adminPort NMTOKEN "">
<!ELEMENT Service (WebApplication*)>
<!ATTLIST Service
id ID #REQUIRED
port NMTOKEN "8080"
hostName NMTOKEN ""
inet NMTOKEN ""
docBase CDATA "webpages"
workDir CDATA "work"
workDirIsPersistent (false | true) "false">
<!ELEMENT WebApplication EMPTY>
<!ATTLIST WebApplication
id ID #REQUIRED
mapping CDATA #REQUIRED
docBase CDATA #REQUIRED
maxInactiveInterval NMTOKEN "30">
]>
<WebServer id="webServer">
<Service id="service0">
<WebApplication id="examples" mapping="/examples" docBase="examples"/>
</Service>
</WebServer>
-->