呵呵,引一篇文章:《Domino Servlet示例》
参考这篇文章,花了点时间实现了Domino JAVA Servlet版的RSS。
这里总结一下该注意的地方:
1、DominoR5支持的JDK版本
可以明确的是JDK1.3.1及以下是可以支持的。我之前是在Eclipse写的Servlet代码(可以快一些),然后用的JDK是1.5的,可想而知,这样编译的class文件扔到Domino Server上去是肯定不运行的,报的是类似class FormatError bad version这样的JDK版本差异的错误。
随后去找了JDK1.3.1本来想把Eclipse环境中的JRE等改成JDK1.3.1的,试了一下,没搞定,就改换成直接用JDK1.3.1来编译了。学到了一点之前没注意到的(没怎么用JDK编写和编译过代码,看过一点王宝森编的《JAVA 深度历险》,第一二章确实很不错),就是如何在JDK环境中引入JAR文件,确实是会者不难,难者不会。这次记清楚了,在环境变量CLASSPATH中指定就可以了。
然后使用JDK1.3.1得编译器重新编译过就可以了。
2、如何使Servlet在Domino服务器上运行?
打开Domino通信录names.nsf数据库——打开“服务器文档”——进入“Internet协议”项——进入“Domino Web引擎”项——编辑“Java Servlets”选项组。
Domino 支持JVM和Servlet Manager(包括Domino自己的和第三方的)。当Servlet“启用”时,JVM在Domino HTTP服务器启动之前装载;如果使用Domino Servlet Manager,在JVM装载之后,Domino HTTP服务器启动时装载Servlet;如果使用第三方Servlet Manager,则只装载JVM。
这些选项的描述如下:
|
- Java servlet 支持-------------启用/禁用。可选项是:禁用、Domino Servlet 管理者和第三 方Servlet支持。
- Servlet URL 路径-------------访问Servlet的URL,例如/servlet。
- 类路径 ---------------------Servlet所在的目录,相对于Domino 数据目录。例如domino\servlet,实际是Domino 数据目录下的domino\servlet。
这个地方,俺有几句话说,你编写的Servlet所使用的JAR文件就可以在这里指定地址,可相对路经或绝对路径,必须是基于Domino服务器的,当然之前你需要把JAR文件放到Domino服务器正确的位置。
建议放在Lotus\Domino\Data\Domino\lib下面(需要新建这个lib文件夹)。
- Servlet 文件扩展------------URL文件扩展名,用来告诉Domino它是一个Servlet,以逗号分隔。
- 会话状态跟踪----------------启用/禁用指示Servlet管理者是否将中止空闲的会话。
- 空闲超时时间----------------一个空闲会话在被中止前的时间(分钟)。此参数只有在启用“最大活动会话”时才有效。
- 最大活动会话----------------最大活动Servlet会话数。
- 会话持续----------------------启用/禁用。指示会话信息是否存入磁盘。
|
WEB服务器启动时装载Servlet,此刻后Servlet将在内存中,开始工作。但是,Servlet代码改变后,Domino HTTP服务器必须退出并重新启动,新代码才会起作用。上面这点很关键,你可以通过在控制台tell http quit,看到servlet的destroy方法的运行提示,然后输入load http,你可以看到jvm初始化,servlet manager初始化,最后才是http server运行。
之后要注意什么地方呢?把servlet放在Lotus\Domino\Data\Domino\servlet文件夹下(基于之前服务器文档中的默认配置)。如果没有servlet文件夹,那就新建一个。
3、编写servlet
只提醒一点:别忘了写finally以及执行相应的代码。
结论(人家说得挺好的,俺引用引用啦)
|
----Servlet和 Agent各有其特点,选择Servlet还是Agent有时取决于开发人员。如果开发人员有很多WEB开发经验或您希望使用WebSphere的强大servlet manager,您可选择Servlet;反之有经验的Domino开发人员可能选择Agent。
|
----Java servlets 使您的 Domino 应用更强大。 servlets 增加服务器端功能, 例如保持应用间交换数据的连接。另外,servlets的特性是线程安全代码,支持网络访问,内存自动管理。
感觉是挺不错的。。。这两天研究了点JAVA与Domino的结合。其实还有一块比较有价值的,就是Domino中JAVA API,可以用于在底层开发Domino程序,改改Notes客户端,改改SameTime什么的,有空就去研究。 |