首先昨天使用的servletapi2-3.jar是基于JDK1.4的J2EE包,而DominoR5实际上对其支持并不好,还是因为Domino是基于JDK1.3的。比如javax.servlet.ServletResponse类中有个方法是:setCharacterEncoding()的方法,该方法在Domino Servlet Manager中识别不出来,提示该类下NoSuchMethod。
那么首先想到的是,找个JDK1.3对应的servletapi,开始只是随手找的,没找到。后来找到了
http://java.sun.com/j2ee/sdk_1.3/techdocs/api/ 这里介绍了1.3对应的servletapi,在1.3下,ServletResponse确实是没有setCharacterEncoding()方法的。
后来想,改写这个Servlet类,尝试了很多方法,无效,遂放弃。
因为查看了sun网站上介绍的1.3对应的servletapi,就知道了它长什么样,又想去找找这个api,这次偷了点懒,想看看自己机器上是否就有,就去找Tomcat中的jar了,引到Eclipse里一看,这个api应该就是我想要的,然后把它替换了DominoR5服务器上的lib中的servletapi2-3。然后修改Domino服务器文档的jar引用地址。
来在百度中搜索“ Domino servlet 中文乱码”看到这篇文章: http://www.blueidea.com/bbs/NewsDetail.asp?id=1804988 得到了一些启发,遂再次修改Servlet类,response.setContentType("text/xml;charset=gb2312")。
来在百度中搜索“ Domino servlet 中文乱码”看到这篇文章: http://www.blueidea.com/bbs/NewsDetail.asp?id=1804988 得到了一些启发,遂再次修改Servlet类,response.setContentType("text/xml;charset=gb2312")。
然后再在Domino服务器中停掉HTTP服务,然后再load,最后访问这个servlet,成功。
呵呵,这几天抽零碎时间DominoR5与JAVA的结合,有点一波三折。总体上来说,还算比较顺利,关键的点上,都得到了很好的启发。