由于安全方面的考虑,applet不可以和其他主机通信。

解决方案 »

  1.   

    我有一个问题是:Applet能不能直接用Jdbc连接数据库?
    我把applet及其所用的class都放在webserver上,这样连接数据库(orace8i)的时候
    就会说找不到driver还有, 能不能说的详细一些,其他主机你指什么?
    先谢了
      

  2.   

    applet只能与本机及它所在主机进行socket联接,
    如webjava站点上的applet,只能与webjava作socket联接。
      

  3.   

    我就是在本机上测试applet连接rmi的时候抛的安全异常,所以我很纳闷。步骤是:
    1、在本机上启动rmiregistry
    2、运行server端程序,导出rmi服务对象
    3、在ie中启动applet结果抛异常。
    hicharlie你认为什么地方有问题?
      

  4.   

    令人困惑的java安全性,我有时候真的觉得他有点束缚自己手脚的感觉。
      

  5.   

    hicharlie? 你的意思是说Applet必须通过rmi才能
    连接数据库吗?他不能和oracle 直接连接吗?我的情况是:applet和oracle 不在一台主机上,这种情况我该怎么办?
    等你的消息,谢谢
      

  6.   

    IE下运行applet为什么提示没有找到java.rmi.Remote?
      

  7.   

    我解决了类找不到的问题,但IE的java 控制台提示下面的exception
    Microsoft (R) VM for Java, 5.0 Release 5.0.0.3234
    ==============================================
    ?  帮助
    c 清楚
    f  运行结束程序
    g 废弃数据回收
    m 内存使用方式
    q 退出
    t 线程列表
    ==============================================
    java.lang.UnsatisfiedLinkError: java/security/AccessController.doPrivileged  Possible causes: If you are trying to use J/Direct (@dll.import), check your compiler version (for JVC, requires 4336 or greater.) If you are trying to use RNI, there are new requirements: see documentation.
    at java/security/AccessController.doPrivileged (AccessController.java)
    at sun/rmi/server/RemoteProxy.getLogLevel (RemoteProxy.java:41)
    at sun/rmi/server/RemoteProxy.<clinit> (RemoteProxy.java:38)
    at sun/rmi/server/RemoteProxy.getStub (RemoteProxy.java)
    at java/rmi/registry/LocateRegistry.getRegistry (LocateRegistry.java:149)
    at java/rmi/registry/LocateRegistry.getRegistry (LocateRegistry.java:105)
    at java/rmi/Naming.getRegistry (Naming.java:213)
    at java/rmi/Naming.lookup (Naming.java:84)
    at test/ui/hx/RMIApplet.init (RMIApplet.java:79)
    at com/ms/applet/AppletPanel.securedCall0 (AppletPanel.java)
    at com/ms/applet/AppletPanel.securedCall (AppletPanel.java)
    at com/ms/applet/AppletPanel.processSentEvent (AppletPanel.java)
    at com/ms/applet/AppletPanel.processSentEvent (AppletPanel.java)
    at com/ms/applet/AppletPanel.run (AppletPanel.java)
    at java/lang/Thread.run (Thread.java)
    这是怎么回事?sun的文档中只有一个简单的例子,根本不提对客户端的要求。help me!!!!
      

  8.   

    你需要一个policy ,在布置你的server时,要让server启动时使用它,这样你就不会报出那个问题了
      

  9.   

    icey,server的policy在启动rmi服务对象的时候是有用,但上面的exception是在
    client的ie中的java console中打出来的。我觉得不是这个原因。
      

  10.   

    Hi icey,policy在server上,可刚才那个exception是在ie的java console中打出来的。
      

  11.   

    不好意思,xhdev,我借用你的空间:-)高手,我的例外是这个样子的(我用netscape )
      Verifier error oracle/jdbc/dbaccess/DBError.throwBatchUpdateException(Ljava/lang/String;Ljava/lang/String;II[I)V: Cannot find class java/sql/BatchUpdateException
    # Verifier error oracle/jdbc/driver/OracleConnection.initialize(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Loracle/jdbc/dbaccess/DBAccess;)V: Cannot find class java/util/Map
    java.lang.NoClassDefFoundError: oracle/jdbc/driver/OracleConnection  at java.lang.ClassLoader.resolveClass(Compiled Code)  at java.lang.ClassLoader.loadClassInternal(Compiled Code)  at oracle.jdbc.driver.OracleDriver.getConnectionInstance(Compiled Code)  at oracle.jdbc.driver.OracleDriver.connect(Compiled Code)  at java.sql.DriverManager.getConnection(Compiled Code)  at java.sql.DriverManager.getConnection(Compiled Code)  at imaginary.persist.DatabaseTransaction.restore(Compiled Code)  at test.Applet1.jbInit(Compiled Code)  at test.Applet1.init(Compiled Code)* at netscape.applet.DerivedAppletFrame$InitAppletEvent.dispatch(Compiled Code)  at java.awt.EventDispatchThread$EventPump.dispatchEvents(Compiled Code)  at java.awt.EventDispatchThread.run(Compiled Code)  at netscape.applet.DerivedAppletFrame$AppletEventDispatchThread.run(Compiled Code)
      

  12.   

    我以前也遇过这种问题,要涉及到加密问题
    它有几种方法可以解决的。大概是这样的
    要先加密,再把密钥给客户端,再解密,才可以用,好象得用policy
    文件
      

  13.   

    终于等到了, 谢谢 dearxiaobao(名字很xiaobao 嘛)
    给点资料或者例子行吗?我的e-mail;yuanmengyuan@bhr.com.cn
    icq 号码:28114934