有没有懂rmi的呀?

zhoudt 2003-05-08 01:53:51
我用applet中使用rmi方法,applet代码如下:
//Applet1.java//
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
import java.sql.*;
import java.rmi.*;
import java.rmi.server.*;

/**
* <p>Title: </p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2003</p>
* <p>Company: </p>
* @author unascribed
* @version 1.0
*/

public class Applet1 extends Applet {
float pro_color_r=0.5f;
float pro_color_g=0.2f;
float pro_color_b=0.6f;
int pro_panel_no=1;
int pro_hand_no=1;
String pro_no="clock_p1_h1";
float pro_price=2;
int pro_num=5;

private boolean isStandalone = false;
private Button button1 = new Button();


//Construct the applet
public Applet1() {
}
//Initialize the applet
public void init() {

button1.setLabel("submit");
this.add(button1, null);
}

///////////////////////////
public boolean action(Event event,Object what)
{

if(event.target instanceof Button)
{
Button b=(Button)event.target;
if(b.getLabel()=="submit")
{
/*AddOrder(pro_color_r,pro_color_g,pro_color_b,pro_panel_no,
pro_hand_no,pro_no,pro_price,pro_num);*/
AddOrder();
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
}
return true;
}
////////////////////
/*public void AddOrder(float pro_color_r,float pro_color_g,float pro_color_b,int pro_panel_no,
int pro_hand_no,String pro_no,float pro_price,int pro_num)
{
try{
String strSQL="INSERT INTO pro_tb(pro_color_r,pro_color_g,pro_color_b,pro_panel_no,pro_hand_no,pro_no,pro_price,pro_num,userid) VALUES('"
+pro_color_r+"','"+pro_color_g+"','"+pro_color_b+"','"+pro_panel_no+"','"+pro_hand_no+"','"+pro_no+"','"+pro_price+"','"+pro_num+"','1')";

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection conn = DriverManager.getConnection
("JDBC:ODBC:virpro","sa","hotlip");
Statement stmt = conn.createStatement();
stmt.executeUpdate(strSQL);

}catch(Exception ex){ex.printStackTrace();}

}*/
public void AddOrder()
{
try {
String url = "//localhost:8808/SERVER";
//////////////////////////////////////////////////////////////////
RmiInterface RmiObject = (RmiInterface)Naming.lookup(url);
//////////////////////////////////////////////////////////////////////
RmiObject.AddOrder_Clock(0.1f,0.2f,0.5f,1,1,"clock_p1_h1",7.0f,8);
System.out.println(" 1 + 2 = " + RmiObject.sum(1,2) );
} catch (RemoteException exc) {
System.out.println("Error in lookup: " + exc.toString());
} catch (java.net.MalformedURLException exc) {
System.out.println("Malformed URL: " + exc.toString());
} catch (java.rmi.NotBoundException exc) {
System.out.println("NotBound: " + exc.toString());
}
}
}
Applet1.html代码:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GBK">
<title>
HTML Test Page
</title>
</head>
<body>
untitled1.Applet1 will appear below in a Java enabled browser.<br>
<applet
codebase = "."
code = "Applet1.class"
name = "TestApplet"
width = "400"
height = "300"
hspace = "0"
vspace = "0"
align = "middle"
>
</applet>
</body>
</html>

用命令appletviewer Applet1.html程序可执行
如用ie浏览Applet1.html不行
...全文
21 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
crazybuddy 2003-05-09
  • 打赏
  • 举报
回复
你用appletviewer可以运行,说明你的rmi程序没有问题。而用IE无法打开是因为你没有设置web server。用appletviewer可以load本地文件,而ie为了安全性的考虑,是不允许直接访问本地文件的,所以,你的codebase=".",IE不会load Applet1.class.

希望有帮助。

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧