TEL:400-8793-956
当前位置:程序、服务器

RMI注册java.rmi.connectexception连接被拒绝托管

提问者: 近期获赞: 浏览人数: 发布时间:2021-01-06 13:01:22

 

问:下面是我的代码:
 
导入java.rmi。*;
导入java.rmi.server。*;
导入java.net。*;
导入java.io. *;
导入javax.swing。*;
导入java.awt.event。*;
导入java.lang。*;
导入java.awt。*;
导入javax.swing.filechooser.FileSystemView;
导入java.util.StringTokenizer;
导入java.net.InetAddress;
导入java.rmi.Naming;
导入java.util.Date;
导入java.util.Vector;
导入java.util.Random;
公共类Login扩展javax.swing.JFrame {
    // String honey =“ 127.0.0.1”;
    RMISIntf参考;
    JOptionPane op;
    向量v =新向量(2);
    字符串sss = null;
    静态字符串用户名;
 
    / **创建新表单登录* /
 
    公共Login(){
        initComponents();
    }
 
    private void initComponents(){
            // GEN-BEGIN:initComponents
            jPan = new javax.swing.JPanel();
            jLabel1 =新的javax.swing.JLabel();
            用户=新的javax.swing.JTextField();
            jLabel2 =新的javax.swing.JLabel();
            提交=新的javax.swing.JButton();
            reset =新的javax.swing.JButton();
            exit =新的javax.swing.JButton();
            通过= new javax.swing.JPasswordField();
            jLabel3 = new javax.swing.JLabel();
            op = new JOptionPane();
            getContentPane()。setLayout(null);
 
            jPanel1 = new javax.swing.JPanel();
            listres = new javax.swing.JList();
            jLab = new javax.swing.JLabel();
            下载= new javax.swing.JButton();
            resArea =新的TextArea();
            保存=新的javax.swing.JButton();
 
            getContentPane()。setLayout(null);
 
            addWindowListener(new java.awt.event.WindowAdapter(){
                public void windowClosing(java.awt.event.WindowEvent evt){
 
                    exitForm(evt);
 
                }
            });
 
            jPan.setLayout(null);
 
            jPan.setBackground(new java.awt.Color(0,116,232));
            jPan.setBorder(new javax.swing.border.EtchedBorder());
            jLab.setFont(new java.awt.Font(“ Arial”,0,14));
            jLab.setForeground(new java.awt.Color(255,255,255));
            jLab.setText(“ User ID:”);
            jPan.add(jLab);
            jLab.setBounds(40,40,90,30);
 
            jPan.add(用户);
            user.setBounds(140,40,100,30);
 
            jLabel2.setFont(new java.awt.Font(“ Arial”,0,14));
            jLabel2.setForeground(new java.awt.Color(255,255,255));
            jLabel2.setText(“ Password:”);
            jPan.add(jLabel2);
            jLabel2.setBounds(40,90,90,30);
 
            Submit.setBackground(new java.awt.Color(255,255,255));
            Submit.setFont(new java.awt.Font(“ Arial”,0,14));
            Submit.setForeground(new java.awt.Color(0,0,0));
            Submit.setText(“ Submit”);
 
            Submit.addActionListener(new java.awt.event.ActionListener(){
                public void actionPerformed(java.awt.event.ActionEvent evt){
                    SubmitActionPerformed(evt);
                }
            });
 
            jPan.add(submit);
            Submit.setBounds(20,150,80,27);
 
            reset.setBackground(new java.awt.Color(255,255,255));
            reset.setFont(new java.awt.Font(“ Arial”,0,14));
            reset.setForeground(new java.awt.Color(0,0,0));
            reset.setLabel(“ Reset”);
 
            reset.addActionListener(new java.awt.event.ActionListener(){
                public void actionPerformed(java.awt.event.ActionEvent evt){
                    resetActionPerformed(evt);
                }
            });
 
            jPan.add(reset);
            reset.setBounds(120,150,80,27);
 
            exit.setBackground(new java.awt.Color(255,255,255));
            exit.setFont(new java.awt.Font(“ Arial”,0,14));
            exit.setForeground(new java.awt.Color(0,0,0));
            exit.setLabel(“ Exit”);
            exit.addActionListener(new java.awt.event.ActionListener(){
                public void actionPerformed(java.awt.event.ActionEvent evt){
                    exitActionPerformed(evt);
                }
            });
 
            jPan.add(exit);
            exit.setBounds(220,150,70,27);
 
            jPan.add(pass);
            pass.setBounds(140,91,100,30);
 
            getContentPane()。add(jPan);
            jPan.setBounds(60,100,320,200);
 
            jLabel3.setFont(new java.awt.Font(“ Arial”,0,20));
            jLabel3.setForeground(new java.awt.Color(255,0,0));
            jLabel3.setText(“确保云计算中的数据存储安全”);
            getContentPane()。add(jLabel3);
            jLabel3.setBounds(200,10,700,30);
            JLabel imageLabel =新的JLabel();
            ImageIcon ii =新的ImageIcon(LoginDialog.class.getResource(“ images / network.JPG”));
            imageLabel.setIcon(ii);
            imageLabel.setBounds(400,50,481,241);
            imageLabel.setBackground(new Color(0,116,232));
            this.getContentPane()。add(imageLabel);
 
 
            包();
 
            jPanel1.setLayout(null);
            jPanel1.setBackground(new java.awt.Color(0,116,232));
            jPanel1.setBorder(new javax.swing.border.EtchedBorder());
            listres.setBorder(new javax.swing.border.SoftBevelBorder(javax.swing.border.BevelBorder.LOWERED));
            jPanel1.add(listres);
            listres.setBounds(20,50,150,220);
 
            jLabel1.setFont(new java.awt.Font(“ Arial”,0,17));
            jLabel1.setForeground(new java.awt.Color(255,255,255));
            jLabel1.setText(“可用资源:”);
            jPanel1.add(jLabel1);
            jLabel1.setBounds(20,5,200,40);
 
            download.setBackground(new java.awt.Color(255,255,255));
            download.setFont(new java.awt.Font(“ Arial”,0,15));
            download.setForeground(new java.awt.Color(0,0,0));
            download.setText(“ Download”);
 
            download.addActionListener(新java.awt.event.ActionListener(){
                公共无效的actionPerformed(java.awt.event.ActionEvent中EVT){
                    downloadActionPerformed(EVT);
                }
            });
 
            jPanel1.add(下载);
            download.setBounds(180,60,110,27);
 
            getContentPane()。add(jPanel1);
            jPanel1.setBounds(20,40,340,280);
 
 
            getContentPane()。add(resArea);
            resArea.setBounds(20,330,450,200);
 
            save.setBackground(new java.awt.Color(255,0,0));
            save.setFont(new java.awt.Font(“ Arial”,0,15));
            save.setForeground(new java.awt.Color(255,255,255));
            save.setText(“ Save”);
            save.addActionListener(new java.awt.event.ActionListener(){
                public void actionPerformed(java.awt.event.ActionEvent evt){
 
                    saveActionPerformed(evt);
 
                }
            });
 
            getContentPane()。add(save);
            save.setBounds(500,340,70,27);
            resArea.setVisible(false);
            save.setVisible(false);
 
            jPanel1.setVisible(false);
            setBackground(new java.awt.Color(0,204,204));
 
        }
        // GEN-END:initComponents
 
    私人无效exitActionPerformed(java.awt.event.ActionEvent evt){
        // GEN-FIRST:event_exitActionPerformed
 
        System.exit(0);
    }
 
 
    private void resetActionPerformed(java.awt.event.ActionEvent evt){
        // GEN-FIRST:event_resetActionPerformed
 
        user.setText(“”);
        pass.setText(“”);
    }
 
    私有无效的commitActionPerformed(java.awt.event.ActionEvent evt){
        试试{
            ref =(RMISIntf)Naming.lookup(“ rmi://127.0.0.1/RMIServer”);
            //System.out.println(ref.res("sdsd","dsa“));
 
            如果(user.getText()。trim()。equals(“”)){
                op.showConfirmDialog(this,“输入用户名”,“警报”,JOptionPane.DEFAULT_OPTION,JOptionPane.ERROR_MESSAGE);
                user.grabFocus();
            } else {
                if(pass.getText()。trim()。equals(“”)){
                    op.showConfirmDialog(this,“ Enter the PassWord”,“ Alert”,JOptionPane.DEFAULT_OPTION,JOptionPane.ERROR_MESSAGE);
                    pass.grabFocus();
                } else {
                    InetAddress地址= InetAddress.getLocalHost();
                    字符串c = Address.getHostAddress();
                    ref =(RMISIntf)Naming.lookup(“ rmi:
                    字符串ss = ref.CliDet(user.getText(),pass.getText(),c);
                    如果(ss.equals(“ notok”)){
                        op.showConfirmDialog(this,“未经授权的用户”,“警报”,JOptionPane.DEFAULT_OPTION,JOptionPane.ERROR_MESSAGE);
                        user.grabFocus();
                    }其他{
 
                        用户名= user.getText();
                        字符串键=(字符串)JOptionPane.showInputDialog(this,“输入您的密钥:”);
                        ref =(RMISIntf)Naming.lookup(“ rmi://127.0.0.1/RMIServer”);
                        字符串状态= ref.CliDet_key(user.getText(),key);
                        如果(status.equals(“ ok”)){
 
                            用户名= user.getText();
                            //getContentPane().remove(jPan);//.visible(false);
                            jPan.setVisible(false);
                            jPanel1.setVisible(true);
                            resArea.setVisible(true);
                            save.setVisible(true);
                            StringTokenizer令牌=新的StringTokenizer(ss,“;”);
                            while(token.hasMoreTokens()){
                                字符串nextToken = token.nextToken();
                                v.addElement(nextToken);
                                System.out.println(nextToken);
                            }
                            listres.setListData(v);
                        } ///如果
                        不是{
                            则内部{
                            user.grabFocus();
                        }
                    }
 
                }
 
            }
 
        } catch(Exception e){
            System.out.println(e);
        }
 
    }
 
    私人无效downloadActionPerformed(java.awt.event.ActionEvent evt){
        //System.out.println ( username);
        // GEN-FIRST:event_downloadActionPerformed
 
        sss =(String)listres.getSelectedValue();
        System.out.println(sss);
        int ch = 0;
        尝试{
            InetAddress地址= InetAddress.getLocalHost();
            字符串c = Address.getHostAddress();
            //////////////////////////////////////////////////// ///
 
            String aa [] = new String [4];
            ref =(RMISIntf)Naming.lookup(“ rmi://127.0.0.1/RMIServer”);
            ////////////////////////
            字符串chh = ref.checkipp(c,sss);
            StringTokenizer st =新的StringTokenizer(chh,“;”);
            字符串ipp = null;
            字符串opp = null;
            // while(st.hasMoreTokens()){
 
            ipp = st.nextToken();
            System.out.println(ipp +“ hai”);
 
            opp = st.nextToken();
            System.out.println(opp);
 
            //}            
 
            字符串optiontest =“ null”;
            如果(ipp.equals(“ ok”)|| opp.equals(“ true”)){
                optiontest =“ true”;
 
                字符串a =(String)JOptionPane.showInputDialog(this,“输入您的密码:”);
                aa [0] = a;
                a =(String)JOptionPane.showInputDialog(this,“输入您的正确密码:”);
                aa [1] = a;
                a =(String)JOptionPane.showInputDialog(this,“输入正确的密码:”);
                aa [2] = a;
                System.out.println(aa [0] + aa [1]);
                aa [3] = new Date()。toString();
                ref.store(aa,c,用户名,sss);
            }
            ////////// change
            字符串ssss = ref.res(sss,c,optiontest);
            / ********文件ss = ref.res(sss,c,);
                
                            // File file = new File(ss);
                        FileInputStream in = new FileInputStream(ss);
                        int i = in.available();
            char st [] = new char [i];
            int j = 0;                             
            while((ch = in.read())!=-1) 
                {
                    st [j] =(char)ch;
                    j ++;
                }
                           String str = new String(st);
               resArea.setText(str);
                    *********** /
            System.out.println(“ new” + ssss);
            resArea.setText(ssss);
 
        } catch(Exception e){
            System.out.println(e);
        }
 
    }
 
 
    private void saveActionPerformed(java.awt.event.ActionEvent evt){
        // GEN-FIRST:event_saveActionPerformed
 
        尝试{
            FileDialog fd = new FileDialog(this,“ File Store”,FileDialog.SAVE);
            fd.setVisible(true);
            字符串f = fd.getFile();
            fd.setFile(f); //文件名过滤器
            fd.setDirectory(“。”); //当前目录
            //fd.show();
            FileOutputStream out =新的FileOutputStream(f);
            字符串s = resArea.getText();
            System.out.println(s);
            字节b [] = s.getBytes();
            out.write(b);
        } catch(Exception e){
            System.out.println(e);
        }
    }
 
    / **退出应用程序* /
 
    private void exitForm(java.awt.event.WindowEvent evt){
        // GEN-FIRST:event_exitForm
        System.exit(0);
    }
 
    / **
     * @param args命令行参数
     * /
    public static void main(String args []){
        JFrame jf1 = new Login();
        jf1.setResizable(false);
        jf1.setSize(900,600);
        jf1.setTitle(“确保云计算中的数据存储安全”);
        jf1.show();
 
 
    }
 
    //变量声明-请勿修改// GEN-BEGIN:变量
    private javax.swing.JButton出口;
    私有javax.swing.JLabel jLabel1;
    私有javax.swing.JLabel jLabel2;
    私有javax.swing.JLabel jLabel3;
    私人javax.swing.JPanel jPan;
    私人javax.swing.JPasswordField通过;
    私人javax.swing.JButton重设;
    私人javax.swing.JButton提交;
    私人javax.swing.JTextField用户;
    私人javax.swing.JButton下载;
    私有javax.swing.JLabel jLab;
    私人javax.swing.JPanel jPanel1;
    私有javax.swing.JList listres;
    私有java.awt.TextArea resArea;
    私有javax.swing.JButton保存;
 
    //变量结尾声明// GEN-END:变量
 
}
 
 
答:请替换为rmi://127.0.0.1:8080 / RMIServer而不是rmi://127.0.0.1/RMIServer
 
 
答:即使在登录表包含详细信息的情况下,在“提交”按钮中,它仍直接转到else阻止未经授权的用户
上一篇: JSON解析器不使用JSON数组
下一篇: 在计算器python tkinter GUI上创建退格按钮