DOMINO和JAVA互相访问

合集下载

初学domino--学习心得

初学domino--学习心得

一、我们可以把自己做的东西在IndiOffice 的地址树中创建索引我们可以把自己做的表单、页面、数据库在IndiOffice的地址树里进行链接。

还记得以前我们做得人事管理系统吗?我们把人事管理系统分了几个模块像人员管理、培训管理、薪资管理等。

然后我们在主页面的左栏里为这几个模块创建索引。

这个和IndiOfficce的地址树很像,不知道你们跟我有没有同样的感觉。

而我们以前用Java做的时候一般习惯为每个模块至少创建两个索引,一个浏览还有一个添加。

其实在浏览里我们就可以进行增、删、改、查的操作了。

但我们习惯把添加又单独拿出来创建一个链接索引。

其实我觉得我们以前的“浏览”和我们现在Domino里的myview表单很相似。

在myview表单里我们同样可以通过各视图浏览数据库里的信息,也可以进行创建等操作。

所以我就想能不能把创建表单也单独哪出来。

后来我发现了可以,而且很简单。

在管理引擎里新建系统模块,新建表单里有一栏“此模块是”,默认是“Domino 数据库”,我们可以把自己做的数据库考到Domino服务器的Data目录里,然后在“数据库文件名”进行链接。

我们可以选择“外部连接URL”,然后在“外部链接URL地址”这一栏里写入URL地址。

这样我们就可以为一个表单或是视图在地址树里创建一个索引。

二、设置在浏览器的默认打开内容不知道大家有没有注意到,我们用模版创建的数据库,在浏览器打开时默认都是打开myview表单,默认打开的视图一般都是vwDocByDate。

在数据库属性的启动副签中设置“在浏览器中打开时”为“打开指定的页面”然后在“页面”中选择默认要显示的页面,在选择的页面中可以定义默认显示的表单或视图。

在模版中它默认打开的页面一般都是“$$ViewTemplateDefault”。

这是我这几天的一点学习心得,也不知道有没有用,先跟大家分享一下。

呵呵。

Domino基础——开发

Domino基础——开发

设计元素 — 视图
Domino的核心元素、是重要的数据展示手段: 通过指定选择公式确定要显示的文档; 通过视图列公式指定要显示的字段; 通过列属性指定排序,显示样式等; 每个数据库至少要有一个视图 类似RDB的视图
设计元素 — 页面
Domino的重要元素、用于显示信息: 可以包含图像、文本、大纲、表格、区段 可以作为网页、图片、附件夹来理解
关于表单
表单是Notes 应用的基础,它们决定了数据在输入输出过程中的显示方式;在一
定程度上决定了在数据库中信息是如何存储的。如果没有设计漂亮的表单,就不 会有精美的D o m i n o应用。 如果你熟悉H T M L的表单,开始时你可能会被Lotus Notes 的表单弄糊涂。 和H T M L表单一样, N o t e s的表单被用来从用户那儿获取信息(通常是通过 可编辑的域)。和H T M L表单不一样的是,N o t e s的表单也被用来显示已经 获取的信息。这些信息存储在称为文档的容器之中。 当你打开一个N o t e s表单时,填写完信息,选择保存。此时,在数据库中保 存一个新文档。这个文档中包含了一个F o r m域,它的值确认用来创建文档的表 单名,当你打开文档时,这个表单被用来显示信息。文档是数据的一部分,表单 是数据库设计的一部分。这和一个数据库中的记录(称为数据)与表(称为基础 组织)二者之间的关系相类似。在H T M L表单和N o t e s表单中,另一个不同 的地方是访问的模式。在默认情况下,当你打开一个N o t e s文档时,它处于只 读模式;读者所看到的都是在一个字处理器中创建的文档,不包含任何文本域或 下拉列表。如果你将此文档改成编辑模式,则它有着明显的不同:可编辑文本域, 下拉列表,以及其他元素都变得可见了,好像是在一个H T M L的表单之中。然 而,你所见到的并非是一个表单,确切地说,你所看到的文档,是通过一个表单 显示出来的。

Lotus Notes Domino面试试题及答案

Lotus Notes Domino面试试题及答案

Domino、Notes基础知识笔试试题姓名:___________【一.填空题】(每空1分,共20分)1.名词解释(请将对应的英文名填入右侧的括号中)(1)Lotus Notes (2)应用服务器(2)Lotus domino (1)客户端(3)Lotus domino designer (4)管理客户端(4)Lotus domino administrator (3)开发客户端2.客户端的功能(请将左侧的功能填入右侧的客户端中)(1)为数据库文件签名(9,10)Lotus Notes(2)查看服务器后台(1,2,3,4)Lotus Domino Administrator(3)人员注册(5,6,7,8)Lotus Domino Designer(4)服务器配置(5)表单(6)视图(7)代理(8)子表单(9)场景配置(10)工作台3.控制台退出http服务的命令是( tell http q )4.Domino B/S开发中用来做重定向的域的名称是什么($$return )5.Domino数据库集成设计、数据存储为一体,Domino数据库是以(nsf )后缀名为结尾的物理文件。

Domino模板是以(ntf )为后缀名为结尾的物理文件。

6.在管理员注册用户的时候,需要使用(cert.id )的id文件作为验证者标识符文件。

7.在Domino编程过程中,对于C/S开发,程序员经常使用(LotusScript )、(Java )、(公式)作为代码编写语句。

8.在编程过程中,经常使用(msgbox )或(print )方法函数,将程序员想要查看的内容打印出来,方便程序员调试程序。

9.@if语句有奇数个参数,必须至少有(三)个参数。

最多可以列出(99 )个条件。

10.要创建表单,就必须在数据库的存取控制列表中至少具有(设计者)存取级别。

【二.选择题】(选择题包含单选或多选,每题1分,共60分)1.表单中可以添加的内容(ABCDE )A 表格B 子表单C 按钮D 静态文本E 域2.下面哪个选项包含“域”这个设计元素?(B)A)视图B)表单C) 代理D) 都不是3.对于数据库中的设计元素,下列说法正确的是:(C E)A 每个数据库中至少包含一个表单B 每个数据库中至少包含一个代理C 每个数据库中至少包含一个视图D 每个数据库中至少包含一个script库E 数据库中可以不包含子表单4.对于数据备份,下列说法错误的是:(BC )A 备份数据库时,可以在服务器停机状态下,物理拷贝nsf文件B 备份数据库时,可以在服务器停机状态下,在Notes中做“新建拷贝”操作C 备份数据库时,可以在服务器运行状态下,物理拷贝nsf文件D 备份数据库时,可以在服务器运行状态下,在Notes中做“新建拷贝”操作5.关于设计元素Script库,说法正确的是(ABCD)A 是一个保存一些可以共享代码的地方B 可以是LotusScript脚本库C 可以是JavaScript脚本库D 可以是Java脚本库6.代理的编写方式可以是(ABC)A LotusScriptB 公式C JavaD JavaScript7.下列说法中错误的是:(B CD)A 当用户修改某子表单时,这些改变就会立刻反映在使用已修改子表单的所有表单上。

Java程序调用Domino 对象

Java程序调用Domino 对象

在Java程序中调用Domino我们在Java程序中,可以通过引用lotus.domino package,来调用Domino对象。

我们的程序可以是一个应用程序,一个Domino代理,一个applet,或一个servlet。

如果我们要在一个客户端调用,那我们需要在机器上配置:Server端:保证notes.ini 包含如下的列:ServerTasks=<any other tasks>,http,diiop在Domino目录(在Server\Servers)下的服务器文档必须允许并限定远程调用,做如下配置:⏹Under Security:◆Under Server Access, fill in "Access server," "Not access server,""Create new databases," and "Create replica databases" as desired.◆Under IIOP Restrictions, fill in "Run restricted Java/Javascript/COM"and "Run unrestricted Java/Javascript/COM" as desired.◆Under Web Server Access - Web server authentication, specify a moreinclusive or less inclusive view for validating user names.⏹Under Ports:◆Under Internet Ports - IIOP, set up the TCP/IP port for non-encryptedtransfers and the SSL port for encrypted transfers. Indicate whetheraccess is permitted by name and password, and whether anonymous accessis allowed.⏹Under Internet Protocols:◆Under HTTP - Basics, indicate whether HTTP clients can browse databases.A "no" specification disallows DbDirectory.getFirstDatabase for thedatabase.◆Under IIOP, specify the number of threads to be allocated for handlingremote calls.Designer端:●保证notes.ini 包含如下的列:ALLOW_NOTES_PACKAGE_APPLETS=1●将Notes目录下的和 Notes.jar 加入CLASSPATH 环境变量中,如:setCLASSPATH=.;C:\Lotus\Notes\Data\domino\java\NCSO.jar; c:\Lotus\Notes●将 c:\Lotus\Notes 加入PATH环境变量中。

Domino数据迁移解决方案

Domino数据迁移解决方案

协同应用平台Domino数据迁移解决方案Lotus Domino/Notes简介Domino数据库结构模式:1.Lotus Domino是先进的文档数据库,广泛应用于办公自动化、工作流控制、协同工作环境等方面,Domino的一个主要技术是信息检索技术,包括全文检索、关键字查询、视图和文件夹等多种方式。

2.文档型数据库与关系型数据库的区别与联系区别:非结构化数据与结构化数据。

联系:数据库对象类比表.3.Domino系统的主要组件有Domino服务器、Adminstrator、Designer和Notes客户端。

Domino服务器集企业级电子邮件、分布式文档数据库与快速应用开发与一体。

Adminstrator是管理服务器的软件,用于监控、管理和性能优化.Designer是应用程序开发软件。

Notes是工作站端软件,集成了邮件、日历、WEB浏览和信息管理.4.Domino数据库结构由表单、域、文档、视图及其他显示部分组成。

表单:用于创建表单外观和功能的组件.域:是构成表单的重要元素,用以数据录入、存放和显示.文档:存储信息的主要形式,相当于关系型数据库的行记录。

视图:是文档的现实窗口,可加条件。

OA的迁移模块简介【项目名称】×××××政府【公文】公文管理主要是国家行政机关、企事业单位在行政管理过程中形成的具有法定效力和规范体式的文书,是依法行政和进行公务活动的重要工具。

本模块主要实现发文、收文、文件送审签的网上自动流转,从而提供了更加规范化、制度化、科学化、流程化的办理方式,简化了纸质办理方式的繁琐性,使工作效率得到了大大的提高. 因此公文历史数据的查阅和复用频率很高.【政务信息】OA政务信息模块是信息的一个重要门类,是政务活动中反映政务工作及其相关事物的情报、情况、资料、数据、图表、文字材料和音像材料等的总称.【项目名称】××××××集团【集团公司发文】参看【公文】Domino数据迁移具体技术实现方案Domino数据源搜索提供两种方法:一、使用Domino因特网ORB间协议DIIOP访问×××××政府原OA系Domino数据库,公文和政务信息等多个模块历史数据需要迁移至新OA中。

mendix调用java.action实例

mendix调用java.action实例

mendix调用java.action实例
要在Mendix 中调用Java 动作(action),你可以按照以下步骤进行操作:
1. 首先,确保你已经在Mendix 模型中创建了Java 动作,并在Mendix Studio Pro 中设置了相应的输入参数和输出参数。

2. 在Mendix 中,你可以通过以下步骤找到Java 动作:
- 在Mendix Studio Pro 中打开你的模型。

- 在导航栏上选择“Projects”。

- 在项目树中选择“Java Actions”来浏览你的Java 动作列表。

3. 在Mendix Studio Pro 中,在你想要调用Java 动作的微流程中添加一个Java 自动化任务(Java Automation Task)。

4. 在Java 自动化任务的属性面板中,你可以选择要调用的Java 动作,并设置输入参数的值。

5. 如果所选的Java 动作具有输出参数,并且你想要在后续的微流程步骤中使用它们,你可以添加一个或多个变量来存储输出参数的值。

6. 在Micronaut 11 中,Java 动作不再支持自定义Java 代码。

你可以通过调用引擎模块提供的API 来使用Java 动作。

7. 完成后,保存和运行微流程即可。

这是一种将Mendix 和Java 动作结合使用的简单方法。

请注意,这只是一种方法,具体的实现取决于你的业务需求和模型的设置。

不过,在Mendix 中使用Java 动作通常不是首选的方法,因为Mendix 本身提供了广泛的建模工具和功能,可以满足大部分的业务需求。

只有在必要时才建议使用Java 动作。

JAVA操作Domino

JAVA操作Domino

JAVA操作Domino2007-03-29 14:42package com.fdt.domino;import lotus.domino.Database;import lotus.domino.Document;import lotus.domino.NotesException;import lotus.domino.NotesFactory;import lotus.domino.Session;import lotus.domino.View;public class Domino{private Session conn = null;private Database db = null;private View view = null;private String host = "10.60.1.6:63148";private String username = "F1065024";private String password = "F1065024";public Domino(){getDataSource();}private void getDataSource(){try{conn = NotesFactory.createSession(host,username,password); }catch (Exception e){System.out.println("getDataSource" + e);}}public Session getConn(){return conn;}/*** 得到domino数据库的一个库*/public Database getDataBase(String db_name) {try{this.db = conn.getDatabase("", db_name);}catch (Exception e){System.out.println("getDataBase" + e); }return this.db;}/**** 得到domino的视图**/public View getView(String viewName){try{this.view = db.getView(viewName);}catch (Exception e){System.out.println("getView()"+e);}return this.view;}/*** 关闭Domino连接*/public void close(){try{if (conn != null){conn.recycle();conn = null;}}catch (Exception e){System.out.println("Domino close()"+e);}}public static void main(String[] args){Domino domino=new Domino();Session session = domino.getConn();try{Database db = session.getDatabase("", "2065012/caitest.nsf"); View view=db.getView("zhaomu");Document doc=view.getFirstDocument();while(doc!=null){System.out.println(doc.getItemValueString("username"));doc=view.getNextDocument(doc);}}catch (NotesException e){e.printStackTrace();}}}。

java跨项目调用方法

java跨项目调用方法

java跨项目调用方法Java跨项目调用方法背景在开发多个独立的Java项目时,有时我们会遇到需要在一个项目中调用另一个项目中的方法的情况。

这种情况下,我们就需要跨项目进行方法调用。

本文将介绍几种常用的方法来实现Java跨项目调用。

1. 通过Java RMI实现跨项目调用Java RMI(Remote Method Invocation)提供了一种机制,使得一个Java应用可以调用运行在另一个Java虚拟机上的对象的方法。

通过使用Java RMI,我们可以在不同的项目中建立远程连接,实现方法的调用。

使用Java RMI实现跨项目调用的步骤如下:1.定义接口:在被调用项目中定义接口,并在接口中声明需要暴露给其他项目调用的方法。

2.实现接口:在被调用项目中实现接口,并在实现类中实现接口中声明的方法。

3.启动RMI Registry:运行被调用项目时,需要启动RMIRegistry,用于注册被调用对象。

4.注册对象:在被调用项目中,将实现类注册到RMI Registry中,以供其他项目调用。

5.获取远程对象:在调用项目中,通过RMI Registry获取远程对象的引用。

6.调用方法:通过远程对象的引用,调用被调用项目中的方法。

2. 使用WebService实现跨项目调用WebService是一种基于Web的服务技术,通过使用HTTP协议和XML格式进行通信。

我们可以通过在被调用项目中发布一个WebService,然后在调用项目中通过SOAP协议调用WebService的方式实现跨项目方法的调用。

使用WebService实现跨项目调用的步骤如下:1.定义接口:在被调用项目中定义接口,并在接口中声明需要暴露给其他项目调用的方法。

2.实现接口:在被调用项目中实现接口,并在实现类中实现接口中声明的方法。

3.发布WebService:在被调用项目中通过WebService框架(如Apache CXF、Apache Axis等)发布WebService。

java 访问其他服务器数据库的方法

java 访问其他服务器数据库的方法

java 访问其他服务器数据库的方法)1、使用Java API读取数据库要访问其他服务器上的数据库,可以使用Java API读取数据库,这种方式比较常见。

可以使用JDBC(Java Database Connectivity)来访问数据库,其中JDBC驱动程序(Driver)是连接程序,它实现了与相应的数据库之间的连接,并且提供了API供编程人员使用。

JDBC API一般提供增删改查等操作。

使用JDBC可以访问多种数据库,如MySQL、SQL Server、Oracle等。

2、使用Web服务进行数据库访问如果你想要从一台服务器上访问另一台服务器上的数据库,可以使用Web服务,也就是SOAP(Simple Object Access Protocol)。

SOAP是一种XML(Extensible Markup Language)协议,它定义了一种网络中一个应用程序如何与另一个应用程序进行通信的规范。

SOAP 可以被用来访问远程数据库,并且可以嵌入在web页面中,这样用户无需安装程序,即可访问远程数据库。

3、使用RMI(远程方法调用)访问数据库RMI(Remote Method Invocation)是一种分布式技术,它允许一台电脑上的程序访问另一台电脑上的对象。

这意味着,如果有多台服务器,可以使用RMI访问这些服务器上的数据库。

RMI可以让客户端在任何一台服务器上访问数据库,而无需在客户端安装任何特定的软件。

总之,Java有多种方式来访问其他服务器上的数据库,例如使用Java API读取数据库、使用Web服务进行数据库访问、使用RMI (远程方法调用)访问数据库等等。

合理地选择合适的方式,才能解决访问其他服务器数据库的问题。

java方法跨系统调用方法

java方法跨系统调用方法

java方法跨系统调用方法Java作为一种广泛应用于企业级应用的编程语言,其跨系统调用方法的使用十分重要。

在企业级应用中,常常需要调用其他系统的功能,比如数据库、消息队列等,而跨系统调用方法可以帮助我们方便地实现这些功能。

本文将介绍Java中跨系统调用方法的实现方式。

一、Java中的跨系统调用方法Java中的跨系统调用方法主要有以下几种:1. 远程方法调用(Remote Method Invocation,简称RMI)RMI是Java中的一种机制,允许在不同的Java虚拟机之间进行远程方法调用。

通过RMI,我们可以在一个Java虚拟机中调用另一个Java虚拟机中的对象的方法,而不需要进行任何网络编程。

RMI 使用Java的序列化机制来传递参数和返回值。

2. Java消息服务(Java Message Service,简称JMS)JMS是一种Java中的消息传递规范,用于在不同的Java应用程序之间传递消息。

JMS可以实现点对点通信和发布/订阅通信模式。

在JMS中,消息被发送到一个消息队列中,然后被接收者从队列中读取。

JMS实现了Java应用程序之间的解耦,使得应用程序可以独立地进行开发和部署。

3. Web服务Web服务是一种跨平台、跨语言的服务,可以通过HTTP协议进行调用。

Web服务通常使用SOAP协议进行通信,SOAP是一种基于XML的协议,用于在网络上交换结构化的和可扩展的信息。

通过Web服务,我们可以方便地实现不同系统之间的互操作性。

4. RESTful服务RESTful服务是一种基于HTTP协议的Web服务,它使用HTTP协议中的GET、POST、PUT、DELETE等方法来实现对资源的操作。

RESTful服务主要使用JSON或XML作为数据格式,具有轻量、灵活、易于扩展等特点。

二、实现跨系统调用方法的步骤实现跨系统调用方法的步骤如下:1. 定义接口在调用其他系统的功能时,需要定义一个接口,该接口定义了需要调用的方法和参数。

Domino数据迁移解决方案

Domino数据迁移解决方案

协同应用平台Domino数据迁移解决方案Lotus Domino/Notes简介Domino数据库结构模式:1.Lotus Domino是先进的文档数据库,广泛应用于办公自动化、工作流控制、协同工作环境等方面,Domino的一个主要技术是信息检索技术,包括全文检索、关键字查询、视图和文件夹等多种方式。

2.文档型数据库与关系型数据库的区别与联系区别:非结构化数据与结构化数据。

联系:数据库对象类比表。

3.Domino系统的主要组件有Domino服务器、Adminstrator、Designer和Notes客户端。

Domino服务器集企业级电子邮件、分布式文档数据库与快速应用开发与一体。

Adminstrator是管理服务器的软件,用于监控、管理和性能优化。

Designer是应用程序开发软件。

Notes是工作站端软件,集成了邮件、日历、WEB浏览和信息管理。

4.Domino数据库结构由表单、域、文档、视图及其他显示部分组成。

表单:用于创建表单外观和功能的组件。

域:是构成表单的重要元素,用以数据录入、存放和显示。

文档:存储信息的主要形式,相当于关系型数据库的行记录。

视图:是文档的现实窗口,可加条件。

OA的迁移模块简介【项目名称】×××××政府【公文】公文管理主要是国家行政机关、企事业单位在行政管理过程中形成的具有法定效力和规范体式的文书,是依法行政和进行公务活动的重要工具。

本模块主要实现发文、收文、文件送审签的网上自动流转,从而提供了更加规范化、制度化、科学化、流程化的办理方式,简化了纸质办理方式的繁琐性,使工作效率得到了大大的提高。

因此公文历史数据的查阅和复用频率很高。

【政务信息】O A政务信息模块是信息的一个重要门类,是政务活动中反映政务工作及其相关事物的情报、情况、资料、数据、图表、文字材料和音像材料等的总称。

【项目名称】××××××集团【集团公司发文】参看【公文】Domino数据迁移具体技术实现方案D omino数据源搜索提供两种方法:一、使用Domino因特网ORB间协议DIIOP访问×××××政府原OA系Domino数据库,公文和政务信息等多个模块历史数据需要迁移至新OA中。

java跨域请求的三种方法

java跨域请求的三种方法

java跨域请求的三种方法Java跨域请求是指当源域和目标域不一致,要求源域能够访问目标域的资源,就需要通过这种跨域的资源请求来进行获取,比如利用JavaScript 向访问其它域的资源,就会受到浏览器的同源策略的限制,因此 Java 跨域访问其它域的资源的方法尤为重要。

一、JSONPJSONP也叫“JSON with padding”,是引入的一种JSON格式的数据传输方案,可以实现跨域访问,所谓跨域,就是源域和目标域不一致。

JSONP一般都是作为script形式请求其他域的js文件,由于函数允许从其他域调用,当js文件完成调用后,就会把其他域返回的JSON 数据回调至本地。

二、窗口同源策略在窗口同源策略的访问中,源域可以使用Window 对象从另一个源中加载文档、子窗口、样式表和图像。

在两个源之间通过,可以达到跨域交换信息。

开发者需要在源页面中设置,然后在目标页面中对进行获取,这样就可以达到跨域传递信息和数据,从而实现跨域通信。

三、CORSCORS(Cross-Origin Request)是一种最常用的跨域请求方式,CORS能够在 Web 服务器上设置跨域请求的 HTTP头,允许源域访问目标域的资源,且不需要使用代理服务器。

CORS 能够使基于浏览器的Web应用程序可以访问跨源的资源,而不必使用 JSONP 的方法,并且无需设置任何代理和跨域配置即可实现跨源访问。

总结:1、JSONP:JSONP 是引入的一种 JSON 格式的数据传输方案,可以实现跨域访问,由于函数允许从其他域调用,当 js 文件完成调用后,就会把其他域返回的JSON 数据回调至本地。

2、窗口同源策略:源域可以使用window 对象从另一个源中加载文档、子窗口、样式表和图像,可以通过来跨域传递信息和数据,从而实现跨域通信。

3、CORS:CORS 能够在 Web 服务器上设置跨域请求的 HTTP 头,允许源域访问目标域的资源,无需使用代理服务器,也无需设置任何代理和跨域配置即可实现跨源访问。

Domino 8.5 DAOS 功能介绍与配置指南说明书

Domino 8.5 DAOS 功能介绍与配置指南说明书
§ 附件合并:减少服务器上存储的重复附件,一份起存,只存一份
§ 适用于任何 Domino 支持的操作系统平台, 如 Windows, AIX, Redhat Linux, Solaris, System i 等
3
DAOS 原理 STORY TITLE
§ 实现机制:(如图 1 ) 将附件加密存放在独立的路径下,从而减少 NSF 尺寸
将会显示 DAOSMgr 调用堆栈信息,请 将输出的日志发给 IBM 技术支持工程师分析
18
常见问题 STORY
§ 5.DAOSTIT文LE件夹下存放的 NLO 数量有没有上限?
答:有,子文件夹编号从 0001 开始,每个子文件夹中最多可以存放 40,000 个附件,第 40,001 个附件会被自动写到新的子文件夹 0002 下,最多可以有 1000 个 DAOS 子文件 夹,这样理论上 DAOS 支持的 NLO 上限为 40,000,000 个
§ 7. 若 NSF 中指针指向不存在 .nlo 文件,删除文档 >load fixup -f -d dbname.nsf
§ 8. 清理连续 60 天未被引用的 .nlo 文件 >tell daosmgr prune 60
17
常见问题
STORY
§
1.
TITLE
哪些数据库应该启用
DAOS

答:用户的邮件文件,服务器端的归档邮件, Mail*.box ,包含很多附件的数据库
DAOS.Engine.Catalog = Synchronized DAOS.Engine.Encryption = Enabled
DAOS.Engine.Status = Enabled
§ 4. 重新同步 DAOS Catalog >tell daosmgr resync

Domino单点登录LTPAtoken生成原理

Domino单点登录LTPAtoken生成原理

Domino单点登录LTPAtoken生成原理一、WebSphere与Domino之间的SSO首先让我们来了解一下Websphere与Domino之间是怎么完成SSO的:1、Web用户向Websphere发起一个登录请求。

2、Websphere判断为合法用户,登录成功。

3、生成ltpatoken,将ltpatoken写入cookie。

这样,当Web用户后续向Domino发起登录请求时,Domino会找到存放在cookie信息中的ltpatoken信息,并且认为这个ltpatoken有效,完成在domino的登录过程。

那么这里会有2个疑问。

第1个,Domino怎么会找的到Websphere存放的cookie,这就是为什么配置SSO的时候需要2个系统是在同一个DNS域下面,因为浏览器cookie共享的限制,跨域不能共享cookie嘛(当然也能用一些其他的手段生成跨域的cookie,这样其实通过一定的开发是可以让LTPATOKEN 跨域的,本案例不讨论这个问题)。

第2个问题,domino找到这个token之后,凭什么认识这个ltpatoken,并且认为它有效呢,所以要求domino和Websphere在生成ltpatoken的时候就有某种约定。

这就是为什么配置Domino SSO文档的时候需要引入Websphere的密钥了。

有了这些前提Domino和Websphere之间就能互相认识对方生成的ltpatoken,并且从中读出需要登录的用户名,只要用户名匹配得上(这就是为什么W和D需要用同一个LDAP目录),该用户就完成登录了。

以上就是简单的Websphere与Domino之间SSO的原理。

当然其实SSO过程还没有这么简单,比如还需要验证ltpatoken的有效期等。

现在我们知道实现SSO的关键在于LtpaToken,Websphere与Domino之间采用LtpaToken 来共享认证信息。

那么基本上任何一个系统只能要完成以下2件事情,它就有可能参与LtpaToken认证的SSO 方案了:1、能生成一个有效的LtpaToken提供给别人。

Domino数据库配置

Domino数据库配置

Domino数据库配置,启动diiop服务1、配置原因:我们设计的移动OA,是基于java的客户端项目,需要 domino启动 diiop服务,这样java才可以连接到domino数据库。

2、配置对原数据库的影响:不影响原数据库的执行,只是使原domino数据库又多提供了一个可以供java访问的接口,即提供DIIOP服务。

3、配置方法:(1) 在D:\Lotus\Domino找到notes.ini,在记事本中打开,找到ServerTasks=Update,Replica,Router,AMgr,AdminP,CalConn,Sched,HTTP,IMAP,LDAP,在其后输入: ,DIIOP ,保存后退出。

如图:重新启动domino server,然后在Domino Server启动的控制命令行上输入命令“Tell DIIOP Show Config”,Domino会告诉我们DIIOP一系列参数,如图:(2) 用Domino Admin 7管理工具打开原数据库,检查 Domino Directory 中 Server 文档。

转至 Ports 选项卡,然后转向 Internet Ports 选项卡。

查看 IIOP 选项卡,“Authentication options”中的“Name & password”应该是Yes,如下图所示。

这些部分有用于指定端口号以及启用/禁用端口的字段。

下图显示了 Internet Ports--IIOP 选项卡:(3) 检查 Domino R7的Directory 中 Server 文档。

转至 Security 选项卡,然后查看 “Server Access”中的“Access Server”应该是“All users can access this server”,如下图所示。

只要满足(4) 检查 Domino 的Directory 中 Server 文档。

Java玩转LotusDomino之配置篇_by_zhengyun(转)

Java玩转LotusDomino之配置篇_by_zhengyun(转)

DIIOP_IOR.txt – 为什么需要? 为什么需要?
diiop_ior.txt来自何方? 来自何方? 来自何方 在 DIIOP 进程启动时,它在 Domino HTTP 根目录 (Windows 中 Domino 默认的安装目录为 C:\lotus\domino\data\domino\html) 中创建一个名为 diiop_ior.txt 的 IOR对象。 有何用? 有何用 IOR 是对象的字符串编码,包含对服务器的 CORBA 访问的 识别信息。客户机会将字符串 IOR 解码,并用它来建立远程 会话。 具体表现形式是什么? 具体表现形式是什么 diiop_ior.txt文件内容类似于这样: IOR:01012d032900000049444c3a……blabla
启动DIIOP 启动DIIOP – Domino R5/R6
Domino R5/R6 Server支持手动启动DIIOP: 查看当前任务列表命令为:show task 启动DIIOP命令为:load diiop
关闭DIIOP命令为:tell diiop quit
启动DIIOP 自动启动DIIOP 启动DIIOP – 自动启动DIIOP
配置参数 – R5和R6有区别 R5和R6有区别
会在Domino R5上得到以下错误:
错误日志片段: 错误代码为4536 lotus.domino.NotesException at lotus.domino.NotesExceptionHelper.read(NotesExceptionHelper.java:48) at lotus.domino.NotesExceptionHolder._read(NotesExceptionHolder.java:2 5) at com.ibm.CORBA.iiop.RepImpl.invoke(RepImpl.java:325)

Domino和Java互相访问

Domino和Java互相访问

Domino 6.0支持JDK 1.3 and JSDK 2.0Domino 7支持JDK 1.4.2domino6通过jdbc(在代理中)访问oracle把oracle的classes12.jar放到D:\Lotus\dominoR6\jvm\lib\ext使用agent(直接编写、引入类2种方法)使用servlet(配置服务器文档)AccessOracleWithJdbc.java起草一个表单,里面的部分内容需要用jdbc取得,并且可带参数。

java代理如何接收参数?servlet怎么用?例如传参数,并和表单等其他内容结合例子:import lotus.domino.*;import java.sql.*;import java.io.PrintWriter;public class MyTest extends AgentBase {public void NotesMain() {try {Session session = getSession();AgentContext agentContext = session.getAgentContext();System.out.println("************start************");Database db = agentContext.getCurrentDatabase();System.out.println("dbname:"+db.getFileName()+" "+db.getFilePath());View view = db.getView("($All)");System.out.println("($All) has " + view.getColumns().size() + " columns");System.out.println(db.getURL());PrintWriter pw = getAgentOutput();Connection con=null;Statement sql =null;ResultSet rs = null;try{Class.forName("oracle.jdbc.driver.OracleDriver");}catch(ClassNotFoundException e){e.printStackTrace();System.out.println("ClassNotFoundException");}try{StringBuffer str = new StringBuffer();str.append("<LINK href='/view.css' rel='stylesheet' type='text/css'>");str.append("<body><TABLE style='display:block' width='80%'cellSpacing='0' cellPadding='0'><TR><TD id='view'>");str.append("<table><tr><th>主题</th><th>文件类型</th><th>发文类型</th><th>文件编号</th><th>起草部门</th></tr>");con=DriverManager.getConnection("jdbc:oracle:thin:@192.168.13.100:1521:ora8","guilinshanghang ","password");sql=con.createStatement();rs=sql.executeQuery("selectsubject,doc_type,fawen_type,docnumber,department from docpublish t");while(rs.next()){str.append("<tr>");String subject = rs.getString(1);str.append("<td>" + subject + "</td>");String doctype = rs.getString(2);str.append("<td>" + doctype + "</td>");String fawentype = rs.getString(3);str.append("<td>" + fawentype + "</td>");String docnumber = rs.getString(4);str.append("<td>" + docnumber + "</td>");String department = rs.getString(5);str.append("<td>" + department + "</td>");str.append("</tr>");}str.append("</table>");str.append("</TD></TR></TABLE>");str.append("<script>alert('ok')</script>");pw.println(str);rs.close();sql.close();con.close();}catch(SQLException e1){System.out.println("sql execute error");}System.out.println("************end************");} catch(Exception e) {e.printStackTrace();}}}建立代理,访问a?openagent,提示2007-01-15 16:06:17 HTTP Web Server: Lotus Notes Exception - Unsupported trigger and search in the background or embedded agent [/javatest.nsf/a?openagent]配置代理为从代理列表选择,数据库中的所有文档,提示2007-01-15 16:07:42 HTTP JVM: ng.NullPointerException2007-01-15 16:07:42 HTTP JVM: at JavaAgent.NotesMain(JavaAgent.java:17)2007-01-15 16:07:42 HTTP JVM: at lotus.domino.AgentBase.runNotes(Unknown Source)2007-01-15 16:07:42 HTTP JVM: at lotus.domino.NotesThread.run(NotesThr ead.java:215)出现ng.securityException,设置代理属性中,权限不受限制正确!!!如果要引入,则javac首先编译不通过。

Domino开发表单用JAVA代理写入sql

Domino开发表单用JAVA代理写入sql

domino开发表单数据用Java代理写入sql一、代理的写法:1、参照“开发平台——共享代码——代理”中的:(开发样例)写入数据库,其中:String url="jdbc:microsoft:sqlserver://192.168.1.112:1433;DatabaseName=DominoEkp";String usr="DominoEkp";String pasword="dekpsql05lock";2、对于每个需要插入数据库的表单请先在数据库中新建一表,并设计存储必要字段,在写入代理中的sql中将要用到表名,注意字段数据类型,设置不好会直接导致数据写入不进数据库。

3、获取表单中的变量和处理方法详见样例,注意表单中的列值是多条记录写在同一后缀为“_All”的变量中,获取多值变量要拆分后再插入数据;域值允许多值的且需要把这一域中的多项值写在SQL中的一条记录中的就用如以下的句子(其中apply为最终的一条记录值):String apply=””Vector v1=doc.getItemValue("CF_Reception1");for(int i=0;i<v1.size();i++){ apply=apply+v1.elementAt(i)+" ";}注意:时间域的域值都需要转化成JAVA时间格式后在保存到SQL数据库,例子如下(appltime为转化后的):Vector Date1time = doc.getItemValueDateTimeArray("CF_ycrq");SimpleDateFormat sdate=new SimpleDateFormat("yyyy-MM-dd");String appltime = sdate.format(((DateTime)Date1time.elementAt(0)).toJavaDate());4,所有的占据内存的变量(如DOC,DB等对象变量,Session变量要注销)要回收,连接要关闭。

Domino常见问题解答

Domino常见问题解答

1楼发表于 2004-10-26 16:51Lotus Notes常见问题答疑Lotus Domino/Notes是目前最为流行的文档数据库系统之一,作为群件系统,它利用自身强大的功能使其在企业、政府办公自动化方面的应用越来越广。

以下总结了一些Notes开发和管理的常见问题,希望对大家有所帮助。

问:当硬盘空间不够时,如何压缩我的Notes工作台?答:由于Notes数据库是典型的文档型数据库,因此长期使用后会占用较大硬盘空间,为此我们需要经常对这些数据库进行压缩。

常用的压缩方法是:1.用鼠标右键单击任意工作台页面,并且选择“工作台属性”。

2.在“工作台”属性框中选择第二个属性按钮,并单击压缩按钮实现压缩。

问:对自行开发的数据库,如何将其保存为模板,以便于以后使用?答:如果已经开发或更改了某个数据库,我们通常希望保存它的结构,以便用于今后的开发。

这种做法不仅节省时间,而且在应用程序间保证了一致性。

我们利用以下步骤可以实现把某数据库保存为模板:1.选择“文件数据库新建拷贝”。

2.在“拷贝数据库”对话框中,输入服务器、标题和文件名,其中文件扩展名为NTF。

3.选择数据库设计复选框,并保存为数据库。

4.单击“确定”按钮,生成数据库模板。

问:在调试Lotus Domino程序时,经常会触发执行qnc.exe 程序并退出Notes,如何解决?答:在调试Lotus Domino/Notes程序时,由于程序设计的问题,我们经常会触发执行qnc.exe程序,并提示错误。

其实qnc.exe执行目的只是Notes的内存保护性措施,并不一定是程序本身有错误。

为了便于调试程序,我们可以在Lotus Domino指令窗口内键入qnc _u,使其暂停运行。

如果想恢复时可以再用qnc _i指令装载它。

问:服务器重装后,对一台曾经安装过Notes客户端的机器如何重新连接到新服务器?答:首先你需要利用新建的服务器生成一个新的用户ID文件,并删除原ID文件。

DOMINO数据库JAVA操作

DOMINO数据库JAVA操作
/ldd/doc/drivers/jdbc/1.5/lddj_help.n sf
3、使用 Corba 来访问 Domino,这个比较烦,我至今没有调通 /oaunion/oaunion.nsf/doc/05728898F1320F4F482 56DF7004CFBE5?opendocument&skeyword=CorbaTop
9 楼 cnhxjtoa(让世界充满爱得从助人为乐开始;学习是一生的课题) 回复于 2004-07-15 14:37:19 得分 30
以前我写过 domino5-->oracle8 以下是与 domino 建立链接的相关代码 import lotus.domino.*;
try {
System.out.println("开始 Notes 数据源进行连接....");
//获取 IOR public String GetIOR() { InputStream bin; String Result=""; int character; try{ URL url = new URL("http://"+strServer+"/diiop_ior.txt") ; bin = url.openStream(); while((character=bin.read())>0) { Result += (char)character; }
user); doc.recycle(); view.recycle(); db.recycle(); sess.recycle(); %> </table> </body> </html>Top
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Connection con=null;
Statement sql =null;
ResultSet rs = null;
try{
Class.forName("oracle.jdbc.driver.OracleDriver");
}catch(ClassNotFoundException e)
{
e.printStackTrace();
import lotus.domino.*; import java.sql.*; import java.io.PrintWriter;
public class MyTest extends AgentBase { public void NotesMain() { try { Session session = getSession(); AgentContext agentContext = session.getAgentContext();
System.out.println("************start************");
Database db = agentContext.getCurrentDatabase();
System.out.println("dbname:"+db.getFileName()+" "+db.getFilePath());
)
2007-01-15 16:07:42 HTTP JVM:
at lotus.domino.AgentBase.runNotes(Unkno
wn Source)
2007-01-15 16:07:42 HTTP JVM:
at lotus.domino.NotesThread.run(NotesThr
ead.java:215)
str.append("</table>"); str.append("</TD></TR></TABLE>"); str.append("<script>alert('ok')</script>"); pw.println(str); rs.close(); sql.close(); con.close(); }catch(SQLException e1){ System.out.println("sql execute error"); } System.out.println("************end************");
Domino 6.0 支持 JDK 1.3 and JSDK 2.0 Domino 7 支持 JDK 1.4.2
domino6 通过 jdbc(在代理中)访问 oracle
把 oracle 的 classes12.jar 放到 D:\Lotus\dominoR6\jvm\lib\ext 使用 agent(直接编写、引入类 2 种方法) 使用 servlet(配置服务器文档)AccessOracleWithJdbc.java 起草一个表单,里面的部分内容需要用 jdbc 取得,并且可带参数。java 代理如何接收 参数? servlet 怎么用?例如传参数,并和表单等其他内容结合 例子:
str.append("<body><TABLE
style='display:block'
width='80%'
cellSpacing='0' cellPadding='0'><TR><TD id='view'>"); str.append("<table><tr><th>主题</th><th>文件类型</th><th>发文类型</th><th>文件编
rs.close(); sql.close(); con.close(); }catch(SQLException e1){ System.out.println("sql execute error"); } System.out.println("************end************"); }
配置代理为从代理列表选择,数据库中的所有文档,提示
2007-01-15 16:07:42 HTTP JVM: ng.NullPointerException
15 16:07:42 HTTP JVM:
at JavaAgent.NotesMain(JavaAgent.java:17
try{
out.println("<LINK href='/view.css' rel='stylesheet' type='text/css'>");
out.println("<body><TABLE style='display:block' width='80%' cellSpacing='0'
号</th><th>起草部门</th></tr>"); con
=DriverManager.getConnection("jdbc:oracle:thin:@192.168.13.100:1521:ora8","guilinshanghang ","password");
sql=con.createStatement(); rs=sql.executeQuery("select subject,doc_type,fawen_type,docnumber,department from docpublish t"); while(rs.next()){
try{ Class.forName("oracle.jdbc.driver.OracleDriver");
}catch(ClassNotFoundException e) {
e.printStackTrace(); System.out.println("ClassNotFoundException"); }
cellPadding='0'><TR><TD id='view'>");
out.println("<table><tr><th> 主 题
</th><th>文件类型</th><th>发文类型</th><th>文件编号</th><th>起草部门</th></tr>");
con
=DriverManager.getConnection("jdbc:oracle:thin:@192.168.13.100:1521:ora8","guilinshanghang
domino6 通过 jdb(c 在 servlet 中)访问 oracle
例子: import java.util.*; import java.io.*; import javax.servlet.*; import javax.servlet.http.*; import java.sql.*;
","password");
sql=con.createStatement();
rs=sql.executeQuery("select subject,doc_type,fawen_type,docnumber,department
from docpublish t");
while(rs.next()){
System.out.println("ClassNotFoundException");
}
try{
StringBuffer str = new StringBuffer();
str.append("<LINK href='/view.css' rel='stylesheet' type='text/css'>");
出现 ng.securityException,设置代理属性中,权限不受限制
正确!!!
如果要引入,则 javac 首先编译不通过。必须在 classpath 中加入 D:\lotus\dominoR6\Notes.jar, 编译即可通过。
如果要访问 sql 2000,则要打 sp4 补丁,否则 jdbc 连不上的。
View view = db.getView("($All)");
System.out.println("($All) has " + view.getColumns().size() + " columns");
System.out.println(db.getURL());
PrintWriter pw = getAgentOutput();
out.println("<tr>");
String subject = rs.getString(1);
相关文档
最新文档