Domino – JnpServer集成【三】——应用
来源:互联网 发布:php 数组的数组 编辑:程序博客网 时间:2024/06/12 00:32
在上一篇文章中,笔者向大家介绍了JnpServer是如何与Domino服务器集成工作的,但那是服务器端。也就是说,服务器端架设好了,还需要客户端访问才能算是一个完整的系统。那么本章就把这个问题解释清楚。
上述代码是通过JNDI接口连接JnpServer.
如果编写过j2ee程序的读者应该能看懂上面这段代码的作用,根据给出的JNDI Name,取得注册到此name的对象。笔者在这里自己定义了一个DominoData的类,并将文档数据以这个对象的形式存入JnpServer中。
此DominoData类必须引用java.io.Serializable这个接口,并实现readObject()和writeObject()两个方法,才能存取数据。先从JnpServer存入数据,再通过代理这样的客户端程序读出数据,这样就形成了一个完整的过程。那么肯定会有人问,你弄这些有什么用?其实它就是个工具,怎么去用,就靠发挥个人想象力。
到此为止,还都只是试验性质的代码,要想实际应用还要过了性能这一关,才能算是有点实际意义。下一章,性能篇,敬请期待。
为了能调用JnpServer,代理需用java语言编写。笔者没有在Xpage中测试,这个工作可以留在今后进行验证。java代理要想访问JnpServer,最重要的是要让程序知道JnpServer在哪里,所以几个基本参数是必不可少的。
Properties props=new Properties();props.setProperty("java.naming.factory.initial","org.jnp.interfaces.NamingContextFactory");props.setProperty("java.naming.provider.url","jnp://192.168.1.127:1099");props.setProperty("java.naming.factory.url.pkgs","org.jboss.naming:org.jnp.interfaces");
上述代码是通过JNDI接口连接JnpServer.
sjndiname = "0001";InitialContext ctx = new InitialContext(props);dominodata = (DominoData)ctx.lookup(sjndiname);
如果编写过j2ee程序的读者应该能看懂上面这段代码的作用,根据给出的JNDI Name,取得注册到此name的对象。笔者在这里自己定义了一个DominoData的类,并将文档数据以这个对象的形式存入JnpServer中。
此DominoData类必须引用java.io.Serializable这个接口,并实现readObject()和writeObject()两个方法,才能存取数据。先从JnpServer存入数据,再通过代理这样的客户端程序读出数据,这样就形成了一个完整的过程。那么肯定会有人问,你弄这些有什么用?其实它就是个工具,怎么去用,就靠发挥个人想象力。
到此为止,还都只是试验性质的代码,要想实际应用还要过了性能这一关,才能算是有点实际意义。下一章,性能篇,敬请期待。
import java.util.Hashtable;import java.util.Properties;import javax.naming.*;import javax.sql.*;import com.dominojnp.base.*;import lotus.domino.*;public class calldominodata extends AgentBase { public void NotesMain() { Session session = null; AgentContext agentContext = null; try { session = getSession(); agentContext = session.getAgentContext(); String sjndiname = null; DominoData dominodata = null; System.out.println("Starting..."); Properties props=new Properties(); props.setProperty("java.naming.factory.initial","org.jnp.interfaces.NamingContextFactory"); props.setProperty("java.naming.provider.url","jnp://192.168.1.185:1099"); props.setProperty("java.naming.factory.url.pkgs","org.jboss.naming:org.jnp.interfaces"); // (Your code goes here) sjndiname = "0001"; System.out.println("jndiname=" + sjndiname); System.out.println("Start:" + System.currentTimeMillis()); InitialContext ctx = new InitialContext(props); dominodata = (DominoData)ctx.lookup(sjndiname); System.out.println("End:" + System.currentTimeMillis()); System.out.println("dataid:" + dominodata.getDataid()); System.out.println("field1:" + dominodata.getField1()); System.out.println("field2:" + dominodata.getField2()); System.out.println("field3:" + dominodata.getField3()); System.out.println("field4:" + dominodata.getField4()); System.out.println("field5:" + dominodata.getField5()); System.out.println("field6:" + dominodata.getField6()); } catch (Exception e) { e.printStackTrace(); } finally { try{ if (agentContext != null) { agentContext.recycle(); } if(session != null){ session.recycle(); } }catch(Exception e){ } } }}
package com.dominojnp.base;import java.io.IOException;import java.util.HashMap;//Domino 文档映射为POJO对象public class DominoData implements java.io.Serializable{ /** * */ private static final long serialVersionUID = 1L; String dataid = ""; String field1 = ""; String field2 = ""; String field3 = ""; String field4 = ""; String field5 = ""; String field6 = ""; public String getDataid() { return dataid; } public void setDataid(String dataid) { this.dataid = dataid; } public String getField1() { return field1; } public void setField1(String field1) { this.field1 = field1; } public String getField2() { return field2; } public void setField2(String field2) { this.field2 = field2; } public String getField3() { return field3; } public void setField3(String field3) { this.field3 = field3; } public String getField4() { return field4; } public void setField4(String field4) { this.field4 = field4; } public String getField5() { return field5; } public void setField5(String field5) { this.field5 = field5; } public String getField6() { return field6; } public void setField6(String field6) { this.field6 = field6; } private void writeObject(java.io.ObjectOutputStream out) throws IOException{ out.writeObject(dataid); out.writeObject(field1); out.writeObject(field2); out.writeObject(field3); out.writeObject(field4); out.writeObject(field5); out.writeObject(field6); } private void readObject(java.io.ObjectInputStream in) throws IOException,ClassNotFoundException { dataid = (String)in.readObject(); field1 = (String)in.readObject(); field2 = (String)in.readObject(); field3 = (String)in.readObject(); field4 = (String)in.readObject(); field5 = (String)in.readObject(); field6 = (String)in.readObject(); } public String getValue(){ return dataid; } }
0 0
- Domino – JnpServer集成【三】——应用
- Domino – JnpServer集成【二】——实践
- Domino – JnpServer集成【四】——性能分析
- Domino – JnpServer集成【一】-- 研究
- J2EE应用如何和DOMINO集成
- 给Domino插上连接池的翅膀(一)--JnpServer实现
- BPM Domino集成解决方案
- WebRTC VideoEngine综合应用示例(三)——集成X264编码和ffmpeg解码
- WebRTC VideoEngine综合应用示例(三)——集成X264编码和ffmpeg解码
- WebRTC VideoEngine综合应用示例(三)——集成X264编码和ffmpeg解码
- WebRTC VideoEngine综合应用示例(三)——集成X264编码和ffmpeg解码
- 在应用整合系统里集成domino系统的邮件和公文
- Domino 和 Tomcat 集成配置
- 矩阵——vijos1194 Domino
- Mocha BSM应用管理——Lotus Domino监控与管理
- domino应用的困惑
- domino xpages 订购应用
- Domino 与 Apache PHP 的集成
- 配置jdk和tomcat环变量境
- UVALive
- 前端资源网站
- 用开源加密库Libgcrypt实现AES加密
- 面试题总结3
- Domino – JnpServer集成【三】——应用
- 62. Unique Paths
- 《用Python进行自然语言处理》代码笔记(二):第二章 获得文本语料和词汇资源
- DFS-bitset-hdu5506-GT and set
- C++primer学习笔记-----6.3返回类型和return 语句
- [Err] 1452 msql添加外键出错
- 读c++ primer有感--string源码中的模板编程示例
- thinkphp 生成二维码 整合phpqrcode 生成二维码
- Selenium-java-(Excel-元素管理篇)