rmiRequestServerDemo.java
上传用户:aonuowh
上传日期:2021-05-23
资源大小:35390k
文件大小:5k
源码类别:

SNMP编程

开发平台:

C/C++

  1. /* $Id: rmiRequestServerDemo.src,v 1.4 2002/09/09 05:41:24 tonyjpaul Exp $ */
  2. /*
  3.  * @(#)rmiRequestServerDemo.java
  4.  * Copyright (c) 1996-2002 AdventNet, Inc. All Rights Reserved.
  5.  * Please read the COPYRIGHTS file for more details.
  6.  */
  7. /**
  8.  *  An example of using the RMI interfaces in a remote client Applet.
  9.  *  <p>
  10.  *  This example uses the RMI SnmpRequestServer interface.
  11.  */
  12. import java.awt.*;
  13. import java.awt.event.ActionListener;
  14. import java.awt.event.ActionEvent;
  15. import java.applet.Applet;
  16. import java.rmi.*;
  17. import com.adventnet.snmp.rmi.*;
  18. import com.adventnet.snmp.beans.DataException;
  19. public class rmiRequestServerDemo extends Applet implements ActionListener, ResultListener {
  20.     com.adventnet.snmp.rmi.SnmpFactory factory = null;
  21.     com.adventnet.snmp.rmi.SnmpRequestServer reqServer = null;
  22. static final int USM_SECURITY_MODEL = 3;
  23.     // Some AWT widgets we'll use
  24.     Label oidLabel;
  25.     TextField oidBox;
  26.     Button getResult;
  27.     TextField resultBox;
  28.     /** The init method is first called for applets.  **/
  29.     public void init() {
  30. oidLabel = new Label ( "OID" );
  31. oidBox = new TextField ( getParameter("OID") );
  32.         getResult = new Button();
  33. getResult.setEnabled(false);
  34.         getResult.setLabel("Get Result");
  35. resultBox = new TextField("The data from the agent is shown here");
  36.         //Listen for actions on button
  37.         getResult.addActionListener(this);
  38.         //Add Components using the default FlowLayout.
  39. GridBagLayout gridbag = new GridBagLayout();
  40. GridBagConstraints constraints = new GridBagConstraints();
  41. setLayout(gridbag);
  42. gridbag.setConstraints(oidLabel,constraints);
  43. gridbag.setConstraints(oidBox,constraints);
  44. constraints.gridy = 1;
  45. gridbag.setConstraints(getResult,constraints);
  46. gridbag.setConstraints(resultBox,constraints);
  47. add(oidLabel);
  48. add(oidBox);
  49.         add(getResult);
  50.         add(resultBox);
  51.     }
  52.     /** The start method is called when page with applet is visited.  **/
  53.     public void start() {
  54. try {  // setup the poller object as desired - use applet parameters
  55. if(getParameter("RMISERVER") != null)
  56. factory = (com.adventnet.snmp.rmi.SnmpFactory)
  57. Naming.lookup( "rmi://" + getParameter("RMISERVER") + "/AdventnetSnmpFactory" );
  58. else
  59. factory = (com.adventnet.snmp.rmi.SnmpFactory)
  60.     Naming.lookup( "rmi:///AdventnetSnmpFactory" );
  61. // Get a Poller object
  62. reqServer = factory.createRequestServer();
  63. // load MIB to allow us to use names
  64. showStatus("Loading MIBs...");  // show something on the status bar
  65. reqServer.loadMibs( getParameter("MIBS") );
  66. showStatus("Loading MIBs done.");
  67. if( getParameter("HOSTNAME")!=null)
  68. reqServer.setTargetHost( getParameter("HOSTNAME") );
  69. if( getParameter("COMMUNITY")!=null)
  70. reqServer.setCommunity( getParameter("COMMUNITY") );
  71. if(getParameter("SNMP_PORT")!=null)
  72. reqServer.setTargetPort(Integer.parseInt(getParameter("SNMP_PORT")));
  73. if(getParameter("SNMP_VERSION")!=null)
  74. reqServer.setSnmpVersion(Integer.parseInt(getParameter("SNMP_VERSION")));
  75. if (getParameter("SNMP_VERSION").equals("3"))
  76. {
  77. reqServer.setPrincipal( getParameter("USERNAME"));
  78. reqServer.setAuthPassword( getParameter("AUTHPASS"));
  79. String protocol =  getParameter("AUTHPROTOCOL");
  80. if(protocol!=null) 
  81. {
  82. if(protocol.equals("SHA"))
  83. reqServer.setAuthProtocol(com.adventnet.snmp.beans.SnmpTarget.SHA_AUTH);
  84. else
  85. reqServer.setAuthProtocol(com.adventnet.snmp.beans.SnmpTarget.MD5_AUTH);
  86. }
  87. if (getParameter("CONTEXTID") != null)
  88. reqServer.setContextID( getParameter("CONTEXTID"));
  89. if (getParameter("CONTEXTNAME") != null)
  90. reqServer.setContextName( getParameter("CONTEXTNAME"));
  91. if (getParameter("PRIVPASS") != null)
  92. reqServer.setPrivPassword( getParameter("PRIVPASS")); // Create the SNMPv3 tables.
  93.   reqServer.create_v3_tables();
  94. }
  95. getResult.setEnabled(true);
  96. java.rmi.server.UnicastRemoteObject.exportObject(this);
  97. reqServer.addResultListener(this);  // listen for response events
  98. }
  99. catch (Exception ex) {
  100. System.err.println("Error in starting applet: "+ex);
  101. resultBox.setText("Error: "+ex);  // show something applet
  102. }
  103. }
  104.     /** This method is called when the button is clicked **/
  105.     public void actionPerformed(ActionEvent e) {
  106. try {
  107.    com.adventnet.snmp.beans.RequestEvent evt = // generate event to the SnmpRequestServer
  108.             new  com.adventnet.snmp.beans.RequestEvent(getResult, oidBox.getText(), com.adventnet.snmp.beans.RequestEvent.GET);
  109.         reqServer.addRequest(evt);   
  110. } catch (Exception ex) {
  111. System.err.println("Error in starting applet: "+ex);
  112. }
  113.     }
  114.     // This method will be invoked when the response is received
  115.     public void setResult( com.adventnet.snmp.beans.ResultEvent e ) {
  116. try {
  117. resultBox.setText(e.getStringValue());
  118. } catch (DataException de) {
  119. resultBox.setText("Error in getting agent data: "+de +
  120. e.getErrorString());
  121. }
  122.     }
  123.     public void setStringResult(String s ) { }
  124.     public void setNumericResult(long i ) { }
  125.     //public void setNumericResult(double i ) { }
  126. }