【问题标题】:How to create and run an agent from Java, using Lotus Notes API如何使用 Lotus Notes API 从 Java 创建和运行代理
【发布时间】:2010-06-19 09:00:08
【问题描述】:

我正在尝试创建一个代理并运行它。我创建了两个类,一个扩展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);

【问题讨论】:

    标签: java lotus-notes lotus-domino


    【解决方案1】:

    当您说您无法访问代理时,您是否收到错误消息?您无需遍历代理集合来寻找第一个代理 - 您可以使用 GetAgent("agentname") 然后使用 Agent.run()。如果您的 Java 代码似乎正在找到代理并运行它,但没有任何反应,请检查您服务器上的 log.nsf 数据库是否存在可能的错误

    【讨论】:

    【解决方案2】:

    这 2 个链接是您浏览的一个很好的指南。它应该可以帮助您使用 eclipse 设计 Java 代理。

    ibm

    LekkimWorld

    【讨论】:

      【解决方案3】:

      您在 notes 代理中定义了两个主要入口点,但是在 notes 代理的上下文中,只有 NotesMain 会执行。静态 main 方法只会在 notes 代理的上下文之外触发,例如在 Netbeans 或 Eclipse 等 3rd 方 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();
      
          }
      
        }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-09-03
        • 1970-01-01
        • 2012-11-07
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多