2010-06-19 33 views
2

我正在嘗試創建代理程序並運行它。我創建了兩個類,一個擴展了AgentBase,另一個是普通的主類。 我已經爲第一類中的代理編寫代碼並試圖從第二類中運行代碼。但我無法訪問它。 我是一個完整的新手在這裏,任何指導將不勝感激。如何使用Lotus Notes API從Java創建和運行代理程序

Agent類:

import lotus.domino.*; 

import java.util.Vector; 
import sun.management.Agent; 

public class anagent extends AgentBase { 

    public void NotesMain() { 

    try { 
     Session session = getSession(); 
     AgentContext agentContext = 
      session.getAgentContext(); 

     // (Your code goes here) 

     System.out.println("I am an agent"); 
    } catch(Exception e) { 
     e.printStackTrace(); 
    } 
    } 

Main類:

public static void main(String [] args) throws NotesException { 
Session session = null; 
Database db = null; 
     try { 
     session = NotesFactory.createSession(hostname,UserName, password); 
    } catch (NotesException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
    boolean x = session.isValid(); 
    System.out.println("success- "+x); 

    try { 
     db = session.getDatabase(null,"LotusDB2.nsf"); 
    } catch (NotesException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
    if(db.isOpen()) 
    System.out.println("database open"); 



     //Agent agnt = (Agent) a.firstElement(); 
    //agnt.toString();} 
    //AgentContext agentContext = session.getAgentContext(); 
     // db = agentContext.getCurrentDatabase(); 
     Vector agents = db.getAgents(); 
     //lotus.domino.Agent agent = new lotus.domino.Agent(); 
     System.out.println("Agents in database:"); 
     if(agents.size()>0) System.out.println("some agents found"); 
     for (int i=0; i<agents.size(); i++) 

     { 

     lotus.domino.Agent agent = (lotus.domino.Agent)agents.elementAt(i); 

回答

2

當你說你不能訪問代理,你得到一個錯誤?您無需遍歷代理集合尋找第一個代理 - 您可以使用GetAgent(「agentname」),然後使用Agent.run()。如果你的Java代碼似乎找到代理並運行它,但沒有任何反應,請檢查您的服務器上的LOG.NSF數據庫

+1

哎答覆 感謝名單我的問題http://www-10.lotus.com/ldd/nd6forum.nsf/55c38d716d632d9b8525689b005ba1c0/052ce2e1d94ac7b9852571870037a86a?OpenDocument 現在,我很匹配按照建議那裏的解決方案! – 2010-06-21 04:37:23

2

這2個鏈接是一個很好的指南爲你辦理。它應該可以幫助你使用eclipse設計java代理。

ibm

LekkimWorld

+0

感謝名單..良好的聯繫 – 2010-06-20 11:40:17

1

你已經在你的筆記代理定義的兩個主要入口點可能出現的錯誤,但是在上下文只有NotesMain會執行。靜態主要方法只會在Notes代理的上下文之外觸發,例如在第三方IDE(例如Netbeans或Eclipse)中運行時。

爲您的代碼從Notes代理的上下文中運行,只需修改您的NotesMain切入點,做所有你需要的工作。

還..什麼是參考sun.management.Agent的?

import lotus.domino.*; 
import java.util.Vector; 

public class AnAgent extends AgentBase { 

    public void NotesMain() { 
    private Session m_session; 
    private AgentContext m_agentContext; 
    private Database m_db; 

    try { 

     m_session = getSession(); 
     m_agentContext = m_session.getAgentContext(); 

     // (Your code goes here) 
     System.out.println("I am an agent"); 
     m_db = m_session.getDatabase("","LotusDB2.nsf"); 

     if(m_db.isOpen()) 
      System.out.println("database open"); 
      Vector agents = m_db.getAgents(); 

      if(agents != null && agents.size()>0) { 
       System.out.println("some agents found"); 

       for (int i=0; i<agents.size(); i++) { 
        lotus.domino.Agent agent = (lotus.domino.Agent)agents.elementAt(i); 
        // whatever it is you are trying to do here... 
       } 
      } 

    } catch(Exception e) { 

     e.printStackTrace(); 

    } 

    } 
相關問題