基于的applet与servlet通讯的问题?
首先各位版主,及各位网友问好!我目前遇到一个关于applet与servlet通讯的问题,applet与servlet基于RMI框架的通讯问题网上很多文章,但都说的不太清楚,最近我将一个关于RMI通讯的例子中的代码做了些改动后放到applet和servlet中进行测试:
1,将tomcat作为服务器,将applet嵌套在jsp网页中,用户可通过internet访问applet,
2,applet端的部分代码:
String url="rmi://192.168.190.161/";
try{
System.setSecurityManager(new RMISecurityManager());
Context namingContext=new InitialContext();
service1=(HelloService)namingContext.lookup(url+"HelloService1");
service2=(HelloService)namingContext.lookup(url+"HelloService2");
//Class stubClass=service1.getClass();
//System.out.println("service1是"+stubClass.getName()+"的实例");
//Class[] interfaces=stubClass.getInterfaces();
//for(int i=0;i<interfaces.length;i++)
//System.out.println("存根类实现了"+interfaces[i].getName());
System.out.println(service1.echo("hello"));
System.out.println(service1.getTime());
System.out.println(service2.echo("hello"));
System.out.println(service2.getTime());
//showRemoteObjects(namingContext);
}catch(Exception e){
String msg="RMI异常";
this.getAppletContext().showStatus(msg+e.getMessage());
}
3,servlet端的初始化init()部分代码:
try{
//System.setSecurityManager(new RMISecurityManager());
java.rmi.registry.LocateRegistry.createRegistry(1099);
HelloService service1 = new HelloServiceImpl("service1");
HelloService service2 = new HelloServiceImpl("service2");
Context namingContext=new InitialContext();
namingContext.rebind( "rmi://192.168.190.161/HelloService1", service1 );
namingContext.rebind( "rmi://192.168.190.161/HelloService2", service2 );
System.out.println("服务器注册了两个HelloService对象");
}catch(Exception e){
e.printStackTrace();
}
有如下问题:
1,运行到System.setSecurityManager(new RMISecurityManager());会出现异常access denied (java.lang.Runtimepermission createSecurityManager)
2,去掉//System.setSecurityManager(new RMISecurityManager());会出现异常access denied (java.net.socketpermission 192.168.190.161:1099 connect,resolve)
3,去网上查了些资料,说要将服务器上的jre中配置java.policy文件,将权限改为
grant codeBase "http://192.168.190.161/vmonitor.jar" {
permission java.security.AllPermission;};
grant{
permission java.security.allpermission;}
改动后仍会出现以上异常
4,tomcat中servlet初始化init()时没有提示任何错误,只是在访问网页时applet连接servlet会出现异常
4,网上说applet要数字签证,但是我的applet不需要读取本地的文件,觉得”不需要“,并且目前数字签证设置我不会,不是说applet可与提供applet的服务器之间进行通讯码?
5,搞了一段时间了,人都疯了!实在不知问题处在哪里。。。。。。
万分感谢! 在线等。。。。。