簡體   English   中英

如何使用Lotus Notes API從Java創建和運行代理

[英]How to create and run an agent from Java, using Lotus Notes API

我正在嘗試創建一個代理並運行它。 我創建了兩個類,一個擴展了AgentBase ,另一個是普通的主類。 我已經在第一類中編寫了代理代碼,並試圖從第二類中運行它。 但是我無法訪問它。 我是這里的新手,任何指導將不勝感激。

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);

這兩個鏈接為您提供了很好的指導。 它應該可以幫助您使用Eclipse設計Java代理。

IBM

LekkimWorld

當您說您無法訪問代理時,您是否遇到錯誤? 您無需遍歷代理集合以查找第一個代理-您可以使用GetAgent(“ agentname”),然后使用Agent.run()。 如果您的Java代碼似乎正在查找代理並正在運行該代理,但是什么也沒有發生,請檢查服務器上的log.nsf數據庫是否存在錯誤

您在Notes代理中定義了兩個主要入口點,但是在Notes代理的上下文中,僅NotesMain將執行。 靜態main方法僅會在Notes代理上下文之外觸發,例如在NetBeans或Eclipse等第三方IDE中運行時。

為了使代碼從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();

    }

  }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM