java訪問domino服務的簡單介紹

本文目錄一覽:

java怎麼調用domino中soap編碼格式為doc/原意的webservice

所用到的java知識就是URL、URLConnection、HttpURLConnection三個對象,本站很多博客中有詳細介紹它們的使用,我這裡就不多說了。下面介紹如何訪問Webservice:

首先在Domino中發布一簡單的Webservice,可以從IBM官網文章中找到學習的例子,如下在Designer中使用Java編寫簡單Webservice(這裡不詳細介紹如何創建/發布Websercive):DatabaseInfo 提供一介面getUserRolesArray,通過NotesID返回其擁有的所有角色名稱。

Java代碼

import lotus.domino.*;

import lotus.domino.types.*;

import java.util.Vector;

public class DatabaseInfo {

private Session session;

private AgentContext agentContext;

private Database db;

public DatabaseInfo () throws Exception {

session = WebServiceBase.getCurrentSession();

agentContext = session.getAgentContext();

db = agentContext.getCurrentDatabase();

}

public String[] getUserRolesArray (String userName) throws Exception {

Document doc = agentContext.getDocumentContext();

Vector v = getRoles(userName);

return (String[])v.toArray(new String[1]);

}

//獲取賬號擁有的角色名稱

private Vector getRoles (String userName) throws Exception {

ACL acl = db.getACL();

ACLEntry entry = acl.getEntry(userName);

if (entry == null) {

return new Vector();

} else {

return entry.getRoles();

}

}

}

其次在Designer中創建一java腳本庫,用於連接、發送Soap請求、返回結果的類:WebServiceClient 提供連接方法openWSDLURL,發送Soap請求並返回結果的方法sendSOAPRequest等

最後在Designer中創建一代理,可以使用java編寫代理,也可以使用Lotusscript編寫代理,下面以Lotusscript編寫代理,調用上面編寫java類訪問Websercive(用java編寫代理也可以直接調用)。

詳細代碼設計無法直接貼在上面,以附件方式上傳,請見附件。

調試過程中可以通過SoapUI(最新版SoapUI3.6)測試Webservice介面,查看其調用Webserivce時發送的Soap請求(包括header、body等信息)。

JAVA通過DIIOP連接domino6正常,連接8.5出錯,懸賞求助

(1)在MyEclipse中引入Oracle 11g自帶的JDBC包(如「G:\app\welcome\product\11.1.0\db_1\jdbc\lib\ojdbc6.jar」):右擊java項目,選擇「Build Path」、「Configure Build Path」,單擊「Add External JARs」按鈕,選擇你的ojdbc6.jar;

(2)開戶Oracle服務;

(3)編寫測試代碼:

import java.sql.*;

public class TestOracle {

public static void main(String[] args) {

try{

Class.forName(“oracle.jdbc.driver.OracleDriver”);

Connection conn = DriverManager.getConnection(“jdbc:oracle:thin:@localhost:1521:orcl”, “scott”, “tiger”);

Statement stmt = conn.createStatement();

ResultSet rs = stmt.executeQuery(“SELECT * FROM scott.emp”);

while(rs.next()){

System.out.println(rs.getInt(1) + “\t” + rs.getString(2));

}

}catch(Exception err){

System.out.println(err.toString());

}

}

}

(4)運行Java程序:

7369 SMITH

7499 ALLEN

7521 WARD

7566 JONES

7654 MARTIN

7698 BLAKE

7782 CLARK

7788 SCOTT

7839 KING

7844 TURNER

7876 ADAMS

7900 JAMES

7902 FORD

7934 MILLER

java調用domino資料庫

java訪問操作lotus domino資料庫

有幾種方式:

1、直接使用domino本身的jar文件介面,這種連接方式需要domino伺服器啟動diiop服務;

2、使用domino的lddj介面,介面可以到ibm的網站上去下載,這種連接方式只能在window環境下使用,需要安裝notes客戶端,使用id來驗證的,需要手動輸入密碼;

3、使用corba來訪問domino,這個比較煩,我至今沒有調通

… pendocumentskeyword=corba發表者:slzhang

是可以通過java來取得domino的資料.也可以通過jsp來讀domino里的資料,只要你在domino上打開diiop服務就可以.

附一個jsp的例子如下:

%@ page c language=”java”%

%@ page import=”com.dragon.*” %

%@ page import=”lotus.domino.*” %

%!

session sess;

database db;

view view;

document doc;

string host = “”,user = “”, pawd = “”;

%

%

try{

sess = notesfactory.createsession(“192.168.2.1″,”admin”,”12345678″);

host = sess.getservername();

user = sess.getusername();

system.out.println(“host: ” + host + “; user: ” +user);

db = sess.getdatabase(host,”fawen\\sample.nsf”,false);

view = db.getview(“jsp”);

doc = view.getfirstdocument();

out.println(db.gettitle());

}catch(notesexception ne){

system.out.println(“error: ” + ne.id + ” == ” + ne.getmessage());

}

%

html

head

titlejsp get domino data/title

/head

body

table border=”1″ bgcolor=”#ff33cc”

trth 姓名/thth性別/thth生日/thth職務/thth職稱/thth 部門/th/tr

%

while(doc!=null){

%

tr

td%= doc.getitemvalue(“jname”) %/td

td%= doc.getitemvalue(“jsex”) %/td

td%= doc.getitemvalue(“jbirth”) %/td

td%= doc.getitemvalue(“jjob”) %/td

td%= doc.getitemvalue(“jjobtitle”) %/td

td%= doc.getitemvalue(“jdept”) %/td

/tr

%

doc = view.getnextdocument(doc);

}

out.println(“host: ” + host + “; user: ” +user);

doc.recycle();

view.recycle();

db.recycle();

sess.recycle();

%

/table

/body

/html

發表者:cnhxjtoa

以前我寫過domino5–oracle8

以下是與domino建立鏈接的相關代碼

import lotus.domino.*;

try {

system.out.println(“開始notes數據源進行連接….”);

session s = notesfactory.createsession(noteshost,username,userpassword);

system.out.println(“與notes數據源成功連接,現正在查找notes登錄資料庫oak.nsf”);

//定義全局性變數

database db = null;

database namesdb=null;

view view =null;

document doc = null;

string namesuser=””;

db = s.getdatabase(s.getservername(), sysinf.notes_dir +”/oak.nsf”);

acl acl = db.getacl();

aclentry entry = acl.getfirstentry();

namesdb=s.getdatabase(s.getservername() ,”names.nsf”) ;

view = namesdb.getview(“groups”);

do

{

//具體分析每一個對象

switch (entry.getusertype()) {

case aclentry.type_mixed_group :

//混合組

system.out.println(“混合組 “+entry.getname()) ;break;

case aclentry.type_person :

//個人

namesuser=entry.getname().substring(3,entry.getname().indexof(“/”) );

addnotesuser(namesuser);

system.out.println(“個人 : “+ namesuser) ;

break;

case aclentry.type_person_group :

//個人群組

system.out.println(“個人群組: “+entry.getname() ) ;

//names.nsf 中視圖groups 文檔members域有每一個用戶

doc = view.getfirstdocument();

while (doc != null !doc.getfirstitem(“listname”).gettext().equals(entry.getname() ) )

{

doc = view.getnextdocument(doc);

}

if (doc!=null){

enumeration values = doc.getfirstitem(“members”).getvalues().elements();

while (values.hasmoreelements()) {

//將cn=administrator/o=autosoft只取它的名字administrator

namesuser=values.nextelement().tostring() ;

namesuser=namesuser.substring(3,namesuser.indexof(“/”) ) ;

addnotesuser(namesuser);

}

}

break;

case aclentry.type_server :

//伺服器

system.out.println(“伺服器 “+entry.getname()) ;break;

case aclentry.type_server_group :

//伺服器組

system.out.println(“伺服器組 “+entry.getname()) ;break;

case aclentry.type_unspecified :

//沒有指定

if(entry.getname().indexof(“/”)1 )

{

namesuser=entry.getname().substring(3,entry.getname().indexof(“/”) );

addnotesuser(namesuser);

system.out.println(“找到一個沒有指定類型的用戶 “+entry.getname().substring(3,entry.getname().indexof(“/”))) ;

break;

}

else

{

system.out.println(“沒有指定 “+entry.getname()) ;

break;

}

}

} while ((entry = acl.getnextentry(entry)) != null);

system.out.println(“用戶導入完成”) ;

}

catch (exception ex)

{

ex.printstacktrace() ;

system.out.println(“與notes數據源連接失敗” ) ;

}

java 訪問 domino資料庫 怎麼設置查詢條件

建議如下操作

1、定位如果連接domino,比如diiop連接的方式

2、能直接訪問連接domino後,就可以做查詢了

比如,你有當前登陸用戶(username=”張三”)為條件,查詢當前用戶在待辦庫(待辦庫:daiban.nsf)中的的所有待辦工單(state=”1″代表待辦狀態)(待辦表單form=”dbgd”)。

1那你可以建一個視圖,搜索條件為:select form = “dbgd” state = “1”

命名視圖名為”chaxun1″,這樣你就建好了你要搜索的視圖了。

2在java中寫代碼咯~~

比如:

(以通過用戶名密碼進入取得session)

Database db = null;

Documentcollection dc = null //文檔集

Document doc = null;

View view = null;

db = session.getdatabase(“domion伺服器ip”,”baiban.nsf”)

view = db.getview(“chaxun1”)

dc = view.getAllDocumentsByKey(doc.getItemValueString(“張三”)

if (dc.getCount()0) {

for(int i=0; idc.getCount(); i++){

doc = dc.getNthDocument(i+1);

// …取到文檔,你還不會處理么- -》》》?

}

}

我只能幫到這裡了。另外附上diiop配置和一則java代理的用例的鏈接(本人博客非廣告)。你可以參考下。(去除「度娘防吞」中文字即可)

還有什麼不明白可以在我博客留言或私信我(我不是每天上百度知道,不一定馬上看到)。

用例:

h度ttp娘:/防/g5dfire.sy吞nology.me:度8888娘/blo防g/#para吞m=id_29

DIIOP配置:

h度ttp娘://防g5dfire.sy吞nology.me:8度888/bl娘og/#pa防ram=吞id_26

java怎麼訪問Domino資料庫

兩種思路 1、用diiop連接訪問,需要操作資料庫對象,對domino的對象操作要有一些了解(知道怎麼讀文檔讀域值),不需要客戶端。 2、如果對domino太不熟,且僅遷移欄位數據,可以把domino的數據通過domino視圖導到一個excel裡面。java再去讀excel。

請教高手java可以訪問操作lotus domino資料庫嗎

可以的,有幾種方式:

1、直接使用Domino本身的jar(notes.jar或NCSO.jar)文件介面,這種連接方式需要Domino伺服器啟動DIIOP服務;

2、使用Domino的LDDJ(Lotus Domino Drivers for JDBC)介面,介面可以到IBM的網站上去下載,這種連接方式只能在window環境下使用,需要安裝notes客戶端,使用ID來驗證的,需要手動輸入密碼;

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/301736.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-30 16:09
下一篇 2024-12-30 16:09

相關推薦

  • Java JsonPath 效率優化指南

    本篇文章將深入探討Java JsonPath的效率問題,並提供一些優化方案。 一、JsonPath 簡介 JsonPath是一個可用於從JSON數據中獲取信息的庫。它提供了一種DS…

    編程 2025-04-29
  • java client.getacsresponse 編譯報錯解決方法

    java client.getacsresponse 編譯報錯是Java編程過程中常見的錯誤,常見的原因是代碼的語法錯誤、類庫依賴問題和編譯環境的配置問題。下面將從多個方面進行分析…

    編程 2025-04-29
  • Java騰訊雲音視頻對接

    本文旨在從多個方面詳細闡述Java騰訊雲音視頻對接,提供完整的代碼示例。 一、騰訊雲音視頻介紹 騰訊雲音視頻服務(Cloud Tencent Real-Time Communica…

    編程 2025-04-29
  • Java Bean載入過程

    Java Bean載入過程涉及到類載入器、反射機制和Java虛擬機的執行過程。在本文中,將從這三個方面詳細闡述Java Bean載入的過程。 一、類載入器 類載入器是Java虛擬機…

    編程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介紹

    本文將詳細介紹Java Milvus SearchParam withoutFields的相關知識和用法。 一、什麼是Java Milvus SearchParam without…

    編程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java語言中的一個版本,於2014年3月18日發布。本文將從多個方面對Java 8中某一周的周一進行詳細的闡述。 一、數組處理 Java 8新特性之一是Stream…

    編程 2025-04-29
  • Python簡單數學計算

    本文將從多個方面介紹Python的簡單數學計算,包括基礎運算符、函數、庫以及實際應用場景。 一、基礎運算符 Python提供了基礎的算術運算符,包括加(+)、減(-)、乘(*)、除…

    編程 2025-04-29
  • Java判斷字元串是否存在多個

    本文將從以下幾個方面詳細闡述如何使用Java判斷一個字元串中是否存在多個指定字元: 一、字元串遍歷 字元串是Java編程中非常重要的一種數據類型。要判斷字元串中是否存在多個指定字元…

    編程 2025-04-29
  • VSCode為什麼無法運行Java

    解答:VSCode無法運行Java是因為默認情況下,VSCode並沒有集成Java運行環境,需要手動添加Java運行環境或安裝相關插件才能實現Java代碼的編寫、調試和運行。 一、…

    編程 2025-04-29
  • Python滿天星代碼:讓編程變得更加簡單

    本文將從多個方面詳細闡述Python滿天星代碼,為大家介紹它的優點以及如何在編程中使用。無論是剛剛接觸編程還是資深程序員,都能從中獲得一定的收穫。 一、簡介 Python滿天星代碼…

    編程 2025-04-29

發表回復

登錄後才能評論