标题:[分享]我的第一个rmi程序
只看楼主
purana
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:广东-广州
等 级:版主
威 望:66
帖 子:6039
专家分:0
注 册:2005-6-17
 问题点数:0 回复次数:15 
[分享]我的第一个rmi程序

刚学rmi.什么也不懂,就写了这个,分享一下.
我不太明白,为什么红色那里为什么不需要安全管理器.之前也写了一个最简单的.没有了安全管理器.就发生错误.而这里又不需要.否则又错误.不太明白.

/**
* @(#)Multi.java
*
*
* @author if
* @version 1.00 2007/3/28
*/

import java.rmi.Remote;
import java.rmi.RemoteException;

public interface Multi extends Remote{
public int mul(int a,int b) throws RemoteException;
}



/**
* @(#)Plus.java
*
*
* @author
* @version 1.00 2007/3/28
*/

import java.rmi.Remote;
import java.rmi.RemoteException;

public interface Plus extends Remote{
public int add(int a,int b) throws RemoteException;
}



/**
* @(#)PlusImpl.java
*
*
* @author if
* @version 1.00 2007/3/28
*/

import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;

public class PlusImpl extends UnicastRemoteObject implements Plus{
private String name;

public PlusImpl(String s) throws RemoteException{
super();
this.name=s;
}

public int add(int a,int b) throws RemoteException{
System.out.println("lnvoke the add");
return (a+b);
}
}



/**
* @(#)MultiImpl.java
*
*
* @author if
* @version 1.00 2007/3/28
*/

import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;

public class MultiImpl extends UnicastRemoteObject implements Multi{
private String name;

public MultiImpl(String s) throws RemoteException{
super();
this.name=s;
}

public int mul(int a,int b) throws RemoteException{
System.out.println("lnvoke the multiply");
return (a*b);
}
}



/**
* @(#)CMSServer.java
*
*
* @author if
* @version 1.00 2007/3/28
*/

import java.rmi.*;

public class CMSServer {
public static void main(String[] args) {
//System.setSecurityManager(new RMISecurityManager());
try{
MultiImpl obj=new MultiImpl("MultiServer");
PlusImpl obj1=new PlusImpl("PlusServer");
Naming.rebind("rmi://localhost:1099/plusService",obj1);
Naming.rebind("rmi://localhost:1099/multiService",obj);
System.out.println("plusxx and multixx!!");
}catch(Exception e){
System.out.println(e.toString());
}
}
}




/**
* @(#)Frame1.java
*
*
* @author if
* @version 1.00 2007/3/28
*/

import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.JTextField;
import javax.swing.JPanel;
import javax.swing.JButton;
import java.rmi.*;

public class Frame1 extends JFrame implements ActionListener{
private JPanel nPanel;
private JTextField jtf1,jtf2,jtf3,jtf4;
private JButton jb;
public Frame1() {
setTitle("rmi");
initComponent();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
pack();
}

private void initComponent(){
nPanel=new JPanel();
jtf1=new JTextField(6);
jtf2=new JTextField(6);
jtf3=new JTextField(6);
jtf4=new JTextField(50);

nPanel.add(jtf1);
nPanel.add(jtf2);
nPanel.add(jtf3);

jb=new JButton("run");
jb.addActionListener(this);

getContentPane().add(nPanel,BorderLayout.NORTH);
getContentPane().add(jtf4,BorderLayout.CENTER);
getContentPane().add(jb,BorderLayout.SOUTH);
}

public void actionPerformed(ActionEvent e){
int i1=Integer.parseInt(jtf1.getText());
int i2=Integer.parseInt(jtf2.getText());
int i3=Integer.parseInt(jtf3.getText());
try{
Plus obj1=(Plus)Naming.lookup("rmi://localhost/plusService");
System.out.println("Found plus object");
Multi obj2=(Multi)Naming.lookup("rmi://localhost/multiService");
System.out.println("Found multi object");
int i4=obj1.add(i1,i2);
System.out.println("Add the first two number");
int i5=obj2.mul(i4,i3);
System.out.println("Multi with the last number");
jtf4.setText(""+i5);
System.out.println("ok");
}catch(Exception ex){
System.out.println(ex.toString());
}
}
}



/**
* @(#)CMSClient.java
*
*
* @author if
* @version 1.00 2007/3/28
*/

import javax.swing.JFrame;

public class CMSClient {
public static void main(String[] args) {
Frame1 frame=new Frame1();
frame.setVisible(true);
}
}

搜索更多相关主题的帖子: rmi java int import 
2007-03-28 17:53
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
得分:0 

厉害,学起RMI了


可惜不是你,陪我到最后
2007-03-28 18:07
purana
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:广东-广州
等 级:版主
威 望:66
帖 子:6039
专家分:0
注 册:2005-6-17
得分:0 
呵呵.才刚学.什么也不懂.

我的msn: myfend@
2007-03-28 18:22
风月_无边
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:60
帖 子:2959
专家分:652
注 册:2007-1-19
得分:0 

从来没看过这方面的东西!!


我的网站 http://www.
2007-03-28 18:23
ILoveMK
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:487
专家分:0
注 册:2007-2-12
得分:0 
rmi不好玩,还是CORBA好~~

天下归心
2007-03-28 18:48
疯仁一踩
Rank: 1
等 级:新手上路
帖 子:68
专家分:0
注 册:2007-2-24
得分:0 
都是强人啊`
我对JAVA才刚入门

2007-03-28 18:53
purana
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:广东-广州
等 级:版主
威 望:66
帖 子:6039
专家分:0
注 册:2005-6-17
得分:0 
对了.千里冰封.
如果rmi运行在两个外网之间.是不是需要突破防火墙?和其它什么的?

我的msn: myfend@
2007-03-28 18:56
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
得分:0 

JAVA程序如果要连的话,都需要通过防火墙的,RMI也不例外

还有,RMI的用途在EJB就能显出来,所以,建议你看看EJB3.0


可惜不是你,陪我到最后
2007-03-28 19:18
purana
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:广东-广州
等 级:版主
威 望:66
帖 子:6039
专家分:0
注 册:2005-6-17
得分:0 

嗯 .好的.迟点会去看看ejb..不过现在还不是时候..基础还是差了点.


我的msn: myfend@
2007-03-28 19:20
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
得分:0 

你现在对JAVA是越来越牛了

恭喜你一下


可惜不是你,陪我到最后
2007-03-28 19:21



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-127564-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.048749 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved