RuntimePermission exception on RMI lookup on a signed Applet

Hi everybody,
Here is my problem : I want to call an ejb from my applet, using RMI.
But, as it is an applet, I get a security exception when I make the naming lookup :
java.security.AccessControlException: access denied (java.lang.RuntimePermission accessClassInPackage.sun.rmi.server)
I have been wandering for two days in the Java Sun sites and forums to find out how to pass through this problem.
Too many information is no information : I am not sure to have the correct answer; but here is what I have found :
All I have to do is to make a self-signed Applet (for testing purpose, before having a real certificate), using keytool and jarsigner, and use it with Java Plugin. Doing that will give AllPermission to the signed code, if the user agrees through a Java Plugin dialog.
(see http://java.sun.com/products/plugin/1.2/docs/nsobjsigning.html)
But... that doesn't work (who said 'of course' ?) :
I get the granting dialog, and even if I agree, I always get the same java.lang.RuntimePermission accessClassInPackage exception.
The strange think is that I tried to write a file on the client machine for testing the permission, and that works fine with this same signed applet.
I think that AllPermission implies FilePermission and also RuntimePermission, doesn't ?
Is this behaviour related to my self-signed certificate ? (in this case, why can i write a file ?)
What am I missing ?
Any help will be welcome,
many thanks
bernard
PS. : Of course, i don't want the user to modify its java policy or security configuration as it is often "mission impossible".

Sorry, i forgot : i am using Java Plugin v 1.3.1_02
B

Similar Messages

  • Cannot perform Bean lookup on signed Applet jar

    Hi All,
    I'm after developing an applet which runs from a number of jars on an Orion app server. Each one of these jars are signed and I can access the Applet okay. The problem is that I make remote reference to EJB's throughout the application. I cannot perform a Bean lookup on a signed jar. The only way it can be done is when the Client is granted all permissions. The client should pop up an option to grant permissions.

    If u are signing all the jar file along with the applet it should work
    It does work fine with me. my code given below
    note that i carry the following jar files along with my applet jar.
    orion.jar,ejb.jar,,jta.jar,jnet.jar,jsse.jar,jcert.jar,parser.jar
    and have them in my archive attribute of my html code for the applet
    also all these jars are signed
    hope this helps
    regards
    raees
    public void init()
         try
              Hashtable env = new Hashtable();
              env.put(Context.INITIAL_CONTEXT_FACTORY, "com.evermind.server.rmi.RMIInitialContextFactory");
              env.put(Context.PROVIDER_URL, "ormi://solomon:23791/helloApp");
              env.put("java.naming.security.principal", "admin");
              env.put("java.naming.security.credentials", "secret");
              Context ic = new InitialContext (env);
              HelloHome hello_home = (HelloHome)ic.lookup("HelloBean");
         Hello hello = hello_home.create ();
              System.out.println (hello.helloWorld ());
         }catch(Exception e)
              e.printStackTrace();

  • Signed applet throws security exceptions

    Since nobody seems to be reading the Signe Applet forum, I decided to try here:
    Hi all
    I have problems with signed applet (self-made cert), and after reading this forum I see this is more or less common.
    The problem that I am having is, that I can not use doPrivilege() and similar tricks, because applet needs to be Java 1.1 compatible.
    So, signing will have to work.
    Applet is signed using 1.5.0_06 jarsigner. Jarsigner verifies it OK.
    It works on JVM 1.5.0_06 but not on 1.4.2_08.
    Please help me make if work under any JVM.
    The error I get is:
    Java(TM) Plug-in: Version 1.4.2_08
    Using JRE version 1.4.2_08 Java HotSpot(TM) Client VM
    User home directory = C:\Documents and Settings\miha
    Proxy Configuration: Automatic Proxy Configuration
         URL: http://orion.nil.si/proxy.pac
    c:   clear console window
    f:   finalize objects on finalization queue
    g:   garbage collect
    h:   display this help message
    l:   dump classloader list
    m:   print memory usage
    o:   trigger logging
    p:   reload proxy configuration
    q:   hide console
    r:   reload policy configuration
    s:   dump system properties
    t:   dump thread list
    v:   dump thread stack
    x:   clear classloader cache
    0-5: set trace level to <n>
    java.security.AccessControlException: access denied (java.net.SocketPermission host.domain.dom resolve)
    TelnetWrapper PROXY: java.security.AccessControlException: access denied (java.net.SocketPermission 127.0.0.1:0 connect,resolve)
    java.lang.NullPointerException
         at net.propero.rdp.ISO.connect(ISO.java:123)
         at net.propero.rdp.MCS.connect(MCS.java:84)
         at net.propero.rdp.Secure.connect(Secure.java:153)
         at net.propero.rdp.Secure.connect(Secure.java:171)
         at net.propero.rdp.Rdp.connect(Rdp.java:498)
         at net.propero.rdp.Rdesktop.main_nonstatic(Rdesktop.java:615)
         at net.propero.rdp.applet.RdpThread.run(RdpApplet.java:222)
    FATAL: java.lang.NullPointerException: nullWhat is funny, is that I have two applets, and one works and the other one doesn't. It is like this:
    Applet A (signed) needs to connect to host1, fails and tries to connect through proxy using my proxy library (also signed - different JAR). Everything works.
    Applet B (signed) needs to connect to host1, fails and tries to connect through proxy using the same proxy library. It gets a security exception.
    All JARs are signed using the same key/certificate.
    Both applets try to connect to the same "host1".
    Both applets try to use the same proxy - which is different from "host1".
    The one thing that might make a difference, is that in the working applet, everything is within one thread, and in the broken applet, the proxy object is in the main applet thread, and this applet may open many windows, that all utilize the same proxy object - only they can't.
    When I tried to move the proxy object down to the child threads, I get the following exception:
    Exception in thread "Thread-1952" java.security.AccessControlException: access denied (java.lang.RuntimePermission accessClassInPackage.sun.misc)
         at java.security.AccessControlContext.checkPermission(Unknown Source)
         at java.security.AccessController.checkPermission(Unknown Source)
         at java.lang.SecurityManager.checkPermission(Unknown Source)
         at java.lang.SecurityManager.checkPackageAccess(Unknown Source)
         at sun.applet.AppletSecurity.checkPackageAccess(Unknown Source)
         at sun.applet.AppletClassLoader.loadClass(Unknown Source)
         at java.lang.ClassLoader.loadClass(Unknown Source)
         at java.lang.ClassLoader.loadClassInternal(Unknown Source)
         at net.propero.rdp.Rdesktop.main_nonstatic(Rdesktop.java:567)
         at net.propero.rdp.applet.RdpThread.run(RdpApplet.java:211)It seems that I can only create the proxy object in the Applet.init() method, to avoid this exception.
    So to, summarize: I would prefer just one object for all threads that I will create, but then my applet behaves like it is not signed (at least under JVM 1.4.2_08). Java 1.5.0_06 doesn't have any problems with this.
    Regards, Miha Vitorovic

    The one thing that might make a difference, is that in the working applet, everything is within one thread, and in the broken applet, the proxy object is in the main applet thread, and this applet may open many windows, that all utilize the same proxy object - only they can't.
    When I tried to move the proxy object down to the child threads, I get the following exception:
    Exception in thread "Thread-1952" java.security.AccessControlException: access denied (java.lang.RuntimePermission accessClassInPackage.sun.misc)
         at java.security.AccessControlContext.checkPermission(Unknown Source)
         at java.security.AccessController.checkPermission(Unknown Source)
         at java.lang.SecurityManager.checkPermission(Unknown Source)
         at java.lang.SecurityManager.checkPackageAccess(Unknown Source)
         at sun.applet.AppletSecurity.checkPackageAccess(Unknown Source)
         at sun.applet.AppletClassLoader.loadClass(Unknown Source)
         at java.lang.ClassLoader.loadClass(Unknown Source)
         at java.lang.ClassLoader.loadClassInternal(Unknown Source)
         at net.propero.rdp.Rdesktop.main_nonstatic(Rdesktop.java:567)
         at net.propero.rdp.applet.RdpThread.run(RdpApplet.java:211)It seems that I can only create the proxy object in the Applet.init() method, to avoid this exception.
    So to, summarize: I would prefer just one object for all threads that I will create, but then my applet behaves like it is not signed (at least under JVM 1.4.2_08). Java 1.5.0_06 doesn't have any problems with this.
    Regards, Miha Vitorovic

  • Serialization exception in RMI

    I have a GameServerImp remote class:
    HashMap clients;
    HashMap versus;
    public GameServerImp() throws RemoteException
    clients =new HashMap();
    versus =new HashMap();
    public void register(String name,GameClientInt c) throws RemoteException
    clients.put(name,c);
    these are its functions.
    I have a client :
    public class BI implements GameClientInt{
    public BI()
    I have following code invoking the register method.
    1 mainServer = (GameServerInt)Naming.lookup("rmi://localhost:1099/gameservice");
    2 mainServer.register(name,new BI());
    when 2 line executes it gives exception:
    java.rmi.MarshalException: error marshalling arguments; nested exception is:
    java.io.NotSerializableException: BI
    at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:122)
    at java.rmi.server.RemoteObjectInvocationHandler.invokeRemoteMethod(RemoteObjectInvocationHandler.java:179)
    at java.rmi.server.RemoteObjectInvocationHandler.invoke(RemoteObjectInvocationHandler.java:132)
    at $Proxy0.register(Unknown Source)
    There is nothing related to io :(. I cant figure out why it is happening.

    Hi,
    Please user for posting sample code
    Does this interface  GameClientInt extends Serializable? if not can you do that and try again
    Regards,
    Alan Mehio
    London,UK                                                                                                                                                                                                                                                                                                                                                           

  • RMI lookup, NoSuchObjectException

    Hello!
    I have a problem with RMI. And I hope someone is able to help me!
    I have a running Server, wich opens a UnicastRemoteObject and binds it to the registry.
    My client is running in a NSI CrEme VM. The clients connects to the regitry via lookup.
    My Problem case: If the device is turn off and then turned on again (On Windows CE the app is still running), the network connection was lost for a little time. So the RMI connection could not send the least signals any more (So after the set least time... the connection expired). So the objects are not available any more and on a call of the remote object a RemoteException occurs.
    What I do then is, I connect the remote object again via lookup. This works, but now each call on the remote object takes a long time to proceed.
    So I turned on the log calls from RMI on the server... and they say, that there is a NoSuchObjectException is thrown. But I am wondering why after a little time the call on the remote object is successfull. Each call now takes time, because each time it is trying to find the object and says, that it's not found. Anyway the call is successful.
    If I restart the app, all works fine... but what I want is to reconnect without restarting the app.
    What can I do? The thing I want to do is to "reconnect" without starting the VM again after the least time is expired. To lookup won't work. Or am I doing anything wrong?
    Thanks for your answers!
    Yves

    Hello!
    What I have just done was to make the server stub as static.
    My code, whicht does it:
    LocateRegistry.createRegistry(MyServer.getRMIPort());
    serverInterface = (MyServerInterface)UnicastRemoteObject.exportObject(server, MyServer.getUnicastRemotePort());
    Naming.bind("rmi://localhost:" + MyServer.getRMIPort() +  "/myServer", serverInterface);
    public SessionInterface getSession(String userName, String clientName,
              Locale locale) throws ClassNotFoundException,
              IllegalAccessException, InstantiationException, RemoteException {
         logger.info("User " + userName + "@" + clientName + " tried to connect.");
         SessionInterface session = new Session();
         return (SessionInterface) UnicastRemoteObject.toStub(session);
    }And my client reconizes the NoSuchObjectException and then does a reconnect via a new lookup.
    Client-Code:
    try {
         instance.getRMISession().isAlive();
         System.out.println("ALIVE");
    } catch (RemoteException ex) {
         System.out.println("REMOTE EXCEPTION");
         instance = null;
         System.gc();
         instance = new RMIConnector(MyClient.getInstance()
                        .getHostconnectionData().getIpAdress(),
                             MyClient.getInstance().getHostconnectionData()
                                  .getPort());
         instance.tryLookup(); // HERE IS DONE A NEW LOOKUP - WHICH JUST WORKS FINE!!!
    }And the code which gives me the class from the factory:
    if (session == null) {
         if (!connected)     {
              this.tryLookup();
         System.out.println("RMI: getting Session Object.");
         session = server.getSession(ClientConnectionData.getInstance()
                        .getLoginData().getLogInName(), ClientConnectionData
                             .getInstance().getHostNameIpAdress(), null);
         // we must resend the logindata any time we connect to host
         sendLoginData();
    connected = true;
    return session;After this the connection works, just with the situation explained above. (First post)
    The NoSuchObjectException now is not thrown to the client. I just see the Exception if I turn on the logs and exceptions for RMI on the server.
    There I get the following message:
    Feb 27, 2009 9:38:35 AM sun.rmi.transport.Transport serviceCall
    FINE: RMI TCP Connection(49)-10.28.17.20: [10.28.17.20] exception:
    java.rmi.NoSuchObjectException: no such object in table
            at sun.rmi.transport.Transport.serviceCall(Transport.java:129)
            at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:4
    66)
            at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport
    .java:707)
            at java.lang.Thread.run(Thread.java:595)The intresting thing is, all just works fine, each call on the functions and the return values... BUT every time it takes a long period to proceed (about 10seconds). What I also can see in the RMI loggings on the server, ist that first the function is executed and after this it says a few times the NoSuchObjectException exception before the Client goes on.
    I hope you can help me!!!
    Yves

  • Java.lang.Exception,java.rmi.RemoteException

    Hi ,
    Whem I'm deploying my appliucation on WLS 10.3 I'm getting the following exception.
    ####<Nov 13, 2008 1:32:21 PM IST> <Warning> <EJB> <swetha> <AdminServer> <[STANDBY] ExecuteThread: '1' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1226563341175> <BEA-012035> <The Remote interface method: 'public abstract java.util.Collection com.bt.resmgt.aam.model.absence.book.AttendanceManager.findAbsences(com.bt.fieldpeople.security.models.Subject,com.bt.resmgt.aam.model.employee.Employee,java.util.List,java.lang.String,java.lang.String,java.util.List,java.util.Date,java.util.Date,java.util.Date,boolean,boolean,boolean,boolean,boolean,boolean,boolean,java.lang.String[]) throws java.lang.Exception,java.rmi.RemoteException' in EJB 'AttendanceManager' contains a parameter of type: 'java.util.List' which is not Serializable. Though the EJB 'AttendanceManager' has call-by-reference set to false, this parameter is not Serializable and hence will be passed by reference. A parameter can be passed using call-by-value only if the parameter type is Serializable.>
    could anybody please help me out?
    any type of jelp will be greatly appreciated.
    Thanks,
    Neeraj

    Your problem is here:
    «'java.util.List' which is not Serializable»
    You're trying to deploy a remote bean. Local beans can work with a parameter that isn't serializable, because their access is made by reference (pointers). But for remote beans, the whole object must be serialized and send over the network to be received by the client. Thus, the java.util.List can't be serialised, so WL complains.
    You must choose a container that can be serialized like java.util.ArrayList, a LinkedList or a vector in case of lists, or use local beans. Anyway, I think serialised objects should always be used with bean functions parameters.

  • Exception in dataSource lookup

    HI,
    I get Exception in dataSource lookup everytime in my code. How to solve this problem.
    I use java,tomcat and sql server
    ERROR [ajp-apr-8009-exec-9] 08:37:18,898 com.general.EditBean - Exception in dataSource lookup.
    java.sql.SQLException: Exception in dataSource lookup.
        at com.dbmodel.DSUtil.getConnection(DSUtil.java:41)
        at com.dbmodel.DSUtil.getConnection(DSUtil.java:49)
        at com.general.EditBean.getEditRecord(EditBean.java:91)
        at org.apache.jsp.lr.blendedtrainingplan_jsp._jspService(blendedtrainingplan_jsp.java:873)
        at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
        at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
        at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
        at com.upside.lms.servlets.GlobalFilter.doFilter(GlobalFilter.java:54)
        at com.upside.lms.servlets.GlobalFilter.doFilter(GlobalFilter.java:38)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:208)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
        at com.googlecode.psiprobe.Tomcat60AgentValve.invoke(Tomcat60AgentValve.java:30)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
        at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
        at org.apache.coyote.ajp.AjpAprProcessor.process(AjpAprProcessor.java:197)
        at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:565)
        at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:1812)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
        at java.lang.Thread.run(Thread.java:722)
    Caused by: javax.naming.NameNotFoundException: Name [null] is not bound in this Context. Unable to find [null].
        at org.apache.naming.NamingContext.lookup(NamingContext.java:820)
        at org.apache.naming.NamingContext.lookup(NamingContext.java:154)
        at org.apache.naming.NamingContext.lookup(NamingContext.java:831)
        at org.apache.naming.NamingContext.lookup(NamingContext.java:154)
        at org.apache.naming.NamingContext.lookup(NamingContext.java:831)
        at org.apache.naming.NamingContext.lookup(NamingContext.java:168)
        at org.apache.naming.SelectorContext.lookup(SelectorContext.java:158)
        at javax.naming.InitialContext.lookup(InitialContext.java:411)
        at com.dbmodel.DSUtil.getConnection(DSUtil.java:39)
        ... 30 more

    Hello,
    "JNDI names are registered in the registry, if you try to access the name which is not registered or by the wrong format, you would get the javax.naming.NameNotFoundException"
    Source:
    http://www.javabeat.net/javax-naming-namenotfoundexception/
    Please look at the following resource too:
    http://stackoverflow.com/questions/6468109/javax-naming-namenotfoundexception-name-jdbc-is-not-bound-in-this-context
    Hope this helps.
    Regards,
    Alberto Morillo
    SQLCoffee.com

  • Unreported exception java.rmi.RemoteException; must be caught or declared t

    I am receiving an:
    unreported exception java.rmi.RemoteException; must be caught or declared to be thrown
    error when I attempt to compile the Client.java file.
    The Client.java file implements the ATMListener.java interface.
    As you will see below, I've stripped them down by taking out all of the code, yet I still receive this error.
    Any ideas...
    ATMListener.java
    import java.rmi.*;
    import java.rmi.server.UnicastRemoteObject;
    * @author Eddie Brodie
    * @version %I%, %G%
    public interface ATMListener extends java.rmi.Remote
    Client.java
    import java.net.MalformedURLException;
    import java.rmi.Naming;
    import java.rmi.NotBoundException;
    import java.rmi.RemoteException;
    import java.rmi.UnknownHostException;
    public class Client extends java.rmi.server.UnicastRemoteObject implements ATMListener

    Well first off unless I am missing something in the API java.rmi.Remote is an interface not a class so implements not inherits, but I do not really know these classes so I cannot be sure I am not missing something.
    As for the unreported exception. What could be causing something like this would be an exception thrown by the constructor of the parent class. Even if you have no constructor written for your class it still has a default constructor which will by default call the super constrcutpor meaning an exception could be thrown from the super constrcutor down to your default constructor where you would not know what to do with it.

  • Should a signed applet ever throw a security exception?

    hi,
    I've had a few times when a signed applet seems to throw a security exception (at the moment am trying to figure out a SocketException being thrown).
    I thought if the applet was signed, and when the browser asks if you want to grant it permissions you press Yes (which I do), then there should not be any security issues?
    thanks,
    asjf

    A signed applet has to assert which permissions it wants. The client JVM then asks the user if they will give those permissions to the signer. If the applet tries to do something for which it hasn't been granted permission a security exception is thrown.

  • Raising new Exception within RMI server

    hi all,
    i implemented an RMI server which, in one of his method, throws my custom exception.
    Since my RMI server is loading classes dynamically, i grabbed all those exceptions that comes when a class cannot be loaded in an MyClassNotLoadedException
    in my code i write the following lined
    try {
    MyClass example = (MyClass)class.forName("MyClass").newInstance();
    } catch(Exception e) {
    throws new MyClassNotLoadedException(e);
    when i am running my test client, i always got the following exception:
    java.rmi.activation.ActivateFailedException: failed to activate object; nested e
    xception is:
    java.rmi.activation.ActivationException: group creation failed after 2 t
    ries; nested exception is:
    java.rmi.UnmarshalException: Error unmarshaling return; nested exception
    is:
    java.lang.ClassNotFoundException: com.nokia.jiacc.IACClassNotLoadedExcep
    tion
    java.rmi.activation.ActivationException: group creation failed after 2 tries; ne
    sted exception is:
    java.rmi.UnmarshalException: Error unmarshaling return; nested exception
    is:
    java.lang.ClassNotFoundException: com.nokia.jiacc.IACClassNotLoadedExcep
    tion
    java.rmi.UnmarshalException: Error unmarshaling return; nested exception is:
    java.lang.ClassNotFoundException: com.nokia.jiacc.IACClassNotLoadedExcep
    tion
    java.lang.ClassNotFoundException: com.nokia.jiacc.IACClassNotLoadedException
    at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(Stream
    RemoteCall.java:245)
    at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:
    220)
    at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:122)
    at sun.rmi.server.Activation$ActivatorImpl_Stub.activate(Unknown Source)
    at java.rmi.activation.ActivationID.activate(ActivationID.java:89)
    at sun.rmi.server.ActivatableRef.activate(ActivatableRef.java:250)
    at sun.rmi.server.ActivatableRef.invoke(ActivatableRef.java:110)
    at com.nokia.jiacc.IACCPlugInImpl_Stub.callMeRemotely(Unknown Source)
    at com.nokia.jiacc.examples.Client.main(Client.java:52)
    If instead, in the catch statement i don't raise any exception, everything works fine.
    can anyone help me?? is it so that every exception that i raise in my RMI server must
    extends RemoteException??
    hope that someone can help me
    thanx in advance and regards
    marco

    Don't need to extends RemoteException. But have you defined your
    Exception that is implements Serializable?
    public class YourException extends Exception
                                 implements Serializable
    {...}Regards,
    Geri

  • How RMI handle exception in RMI kernel ?

    hi everyone.
    How RMI handle exception in RMI kernel ?
    That is , when RMI catch an exception ,
    what RMI should do to handle the exception?
    best regards.

    it throws an exception (some derived class of RemoteException) which is transmitted to, rethrown at, and must be caught at, the client.

  • JDK6 And ClassNotFound Exception during RMI server start

    Hello,
    I have been write a simple Hello World RMI, but I'm unable to start the server always get this exeception:
    Server exception: java.rmi.ServerException: RemoteException occurred in server thread; nested exception is:
         java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is:
         java.lang.ClassNotFoundException: rmi.Hello
    java.rmi.ServerException: RemoteException occurred in server thread; nested exception is:
         java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is:
         java.lang.ClassNotFoundException: rmi.Hello
         at sun.rmi.server.UnicastServerRef.oldDispatch(UnicastServerRef.java:396)
         at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:250)
         at sun.rmi.transport.Transport$1.run(Transport.java:159)
         at java.security.AccessController.doPrivileged(Native Method)
         at sun.rmi.transport.Transport.serviceCall(Transport.java:155)
         at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:535)
         at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:790)
         at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:649)
         at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
         at java.lang.Thread.run(Thread.java:619)
         at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:255)
         at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:233)
         at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:359)
         at sun.rmi.registry.RegistryImpl_Stub.bind(Unknown Source)
         at rmi.HelloMain.main(HelloMain.java:21)
         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         at java.lang.reflect.Method.invoke(Method.java:597)
         at com.intellij.rt.execution.application.AppMain.main(AppMain.java:90)The sources are these:
    package rmi;
    import java.rmi.Remote;
    import java.rmi.RemoteException;
    public interface Hello extends Remote {
        public void sayHello() throws RemoteException;
    package rmi;
    import java.rmi.RemoteException;
    public class HelloServer implements Hello{
        public HelloServer() {
            super();
        public void sayHello() throws RemoteException {
            System.out.println("Ciau!");
    package rmi;
    import java.rmi.registry.LocateRegistry;
    import java.rmi.registry.Registry;
    import java.rmi.server.UnicastRemoteObject;
    public class HelloMain {
        public static void main(String[] args) {
         try {
             Hello obj = new HelloServer();
             Hello stub = (Hello) UnicastRemoteObject.exportObject(obj, 0);
            // Bind the remote object's stub in the registry
            Registry registry = LocateRegistry.getRegistry();
            registry.bind("Hello", stub);
            System.err.println("Server ready");
        } catch (Exception e) {
            System.err.println("Server exception: " + e.toString());
            e.printStackTrace();
    }May be I'm wrong with start command, but I tried differents syntax without result.
    Can you help me?
    Thanks to all.
    PS:Sorry for my spaghetti-english :D

    I had similar issue and i got rid of it by doing the following:
    i. Start rmiregistry from the server code (so that the JVM remains the same) like this
    // Server.java
    Process pro = Runtime.getRuntime().exec("rmiregistry 1099 &");
    // ... ii. Use java.rmi.server.codebase property while starting the server
    D:\rmiEx\bin>java -Djava.rmi.server.codebase=file:/D:\rmiEx\bin example.hello.Server

  • Security Exception executing a signed Applet

    Dear All,
    I get a security exception (file permission ) when i try to execute a signed applet using java plugin version 1.4.2._02, the same applet works good in java plugin version 1.3.1_04.
    Any ideas...???
    Thanks in advance
    KSRK123

    Although not a solution for us as we are tied to the 1.2.2 plugin for now, we did try out 1.3.1_10 and it worked fine without any modifications to cacerts.
    Please see our listings (below) and let us know if anything comes to mind. I'm fairly new to this but I thought the whole idea with 1.2.2 was that we shouldn't have to mess with the cacerts or policy files on a clients machine. Rather the Root Certificate of the browser was used for verification??
    http://forum.java.sun.com/thread.jsp?forum=32&thread=480668&tstart=0&trange=15
    http://forum.java.sun.com/thread.jsp?forum=63&thread=480895&tstart=0&trange=15

  • Self signed Applet - still getting Security Exception...

    Hi everyone...
    I m new to Java Mail... Nd I m developing a Applet to send mail from my Gmail account, nd I used keytool, jarsigner to Self sign the applet. Nd I wrote a Html page and when calling my applet method using javascript, I m having Security Exception... And I m using Java 1.5 (i.e., J2SE 5)
    Here is the sample of my code...
    --------- MyMail.java -----------
    import javax.mail.*;
    import javax.mail.internet.InternetAddress;
    import javax.mail.internet.MimeMessage;
    And all neccessory packages are imported....
    public class MyMail extends JApplet
         String server = "smtp.gmail.com";
         String username;
         String password;
         String fromAddres="";
         String toAddres="";
         Other Variable declaration goes here........
    Session ses;
    Transport tr;
    MimeMessage msg;
         public void init() //For testing purpose
              doLogin("username","password"); //My account details
         public void doLogin(String user,String pass)
              username = user;
              password = pass;
              boolean success;
              fromAddres = user+"@gmail.com";
              toAddres = "[email protected]";
              subject = "TEst SubJect";
              body = "This is Test Mail";
              success = doAuthentication();
              if(success)
                   setHeaders(server,username,password,fromAddres,toAddres,cc,bcc,htmlFormat,subject,body);
                   sendMail(ses);
                   doLogout();
         public void doLogout()
              //Deals with the logout from my account
         public boolean doAuthentication()
              //Deals with the authentication of my account
              // Setting properties, creating a session, getting transport object...
              //and returns true if authentication is success, false if not.
         public void setHeaders(String server, String username, String password, String fromAddress, String toAddress, String cc, String bcc, boolean htmlFormat, String subject, String body)
              //Sets the headers fields for the message (recieved through arguments)
         public void sendMail(Session ses)
              //Deals with sending mail
    class MyPasswordAuthenticator extends Authenticator
         //Deals with the authentication of my account
    ---------- MyMail.html -----------
    <html>
    <head>
    <script language=javascript>
    function sendmail()
    document.MyMail.doLogin("username","password"); //my account details
    </script>
    </head>
    <body>
    <input type=button name=but value=Send mail onclick=sendmail()>
    <applet name=MyMail code=MyMail.class
    archive=mail.jar,activation.jar,mailplus.jar width=0 height=0>
    </applet>
    </body>
    </html>
    And the applet is Self signed using the tools supplied from Java SDK...
    it got signed...
    And as the applet got loaded when i opend the MyMail.html, as i called the doLogin(..,..) in init() it is sending mail successfully...
    The problem is.... As I given the action for my button to send mail (by calling java method from java script i.e., calling doLogin() when the button clicked) I m getting Security Exception
    So...anyone plz tell me the solution....
    Thnx in advance....
    - Kanta

    http://www.google.nl/search?hl=nl&q=site%3Asun.com+javascript+signed+applet&btnG=Google+zoeken&meta=
    DoPrivileged would solve your problem but I've seen some cases where the
    threaded (link mentioned below second post) mothod is the only way it'll work.
    Signing applets:
    http://forum.java.sun.com/thread.jsp?forum=63&thread=524815
    second post and reply 18 for the java class file using doprivileged
    Still problems?
    A Full trace might help us out:
    http://forum.java.sun.com/thread.jspa?threadID=656028

  • Signed applet don't work on XP

    Hi,
    I'am currently working on a point-of-sale (POS) using windows XP/Firefox and a linux apache/jboss server.
    I have developed a dynamic windows library in order to use an industrial printer connected to the POS to perform some printing without confirmation of the customer.
    The POS is under Windows XP SP2 and use Firefox 2.0.0.11/JRE 1.5.0.14.
    This dll is used by a signed applet located on the apache/jboss server.
    The applet is correctly downloaded by the client, but normally i have to wait for the certicat authentification windows appearing and for confirming that i want execute the applet. And instead i have a java exception :
    security: La v�rification du certificat � l'aide des certificats AC racine a �chou�
    security: Aucune information d'horodatage disponible
    java.lang.NullPointerException
         at com.sun.deploy.ui.UIFactory.showSecurityDialog(Unknown Source)
         at com.sun.deploy.security.TrustDeciderDialog.showDialog(Unknown Source)
         at com.sun.deploy.security.TrustDecider.isAllPermissionGranted(Unknown Source)
         at com.sun.deploy.security.TrustDecider.isAllPermissionGranted(Unknown Source)
         at sun.plugin.security.PluginClassLoader.getPermissions(Unknown Source)
         at java.security.SecureClassLoader.getProtectionDomain(Unknown Source)
         at java.security.SecureClassLoader.defineClass(Unknown Source)
         at java.net.URLClassLoader.defineClass(Unknown Source)
         at java.net.URLClassLoader.access$100(Unknown Source)
         at java.net.URLClassLoader$1.run(Unknown Source)
         at java.security.AccessController.doPrivileged(Native Method)
         at java.net.URLClassLoader.findClass(Unknown Source)
         at sun.applet.AppletClassLoader.findClass(Unknown Source)
         at java.lang.ClassLoader.loadClass(Unknown Source)
         at sun.applet.AppletClassLoader.loadClass(Unknown Source)
         at java.lang.ClassLoader.loadClass(Unknown Source)
         at sun.applet.AppletClassLoader.loadCode(Unknown Source)
         at sun.applet.AppletPanel.createApplet(Unknown Source)
         at sun.plugin.AppletViewer.createApplet(Unknown Source)
         at sun.applet.AppletPanel.runLoader(Unknown Source)
         at sun.applet.AppletPanel.run(Unknown Source)
         at java.lang.Thread.run(Unknown Source)
    security: L'utilisateur a refus� les droits d'acc�s au code
    basic: Taille de cache du chargeur de classes courant : 1
    basic: Termin�...
    basic: Jonction du thread d'applet...
    basic: Destruction de l'applet...
    basic: Elimination de l'applet...
    basic: Sortie de l'applet...
    java.lang.ExceptionInInitializerError
         at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
         at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
         at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
         at java.lang.reflect.Constructor.newInstance(Unknown Source)
         at java.lang.Class.newInstance0(Unknown Source)
         at java.lang.Class.newInstance(Unknown Source)
         at sun.applet.AppletPanel.createApplet(Unknown Source)
         at sun.plugin.AppletViewer.createApplet(Unknown Source)
         at sun.applet.AppletPanel.runLoader(Unknown Source)
         at sun.applet.AppletPanel.run(Unknown Source)
         at java.lang.Thread.run(Unknown Source)
    Caused by: java.security.AccessControlException: access denied (java.lang.RuntimePermission loadLibrary.C:\Program Files\BICImpression\impression_api.dll)
         at java.security.AccessControlContext.checkPermission(Unknown Source)
         at java.security.AccessController.checkPermission(Unknown Source)
         at java.lang.SecurityManager.checkPermission(Unknown Source)
         at java.lang.SecurityManager.checkLink(Unknown Source)
         at java.lang.Runtime.load0(Unknown Source)
         at java.lang.System.load(Unknown Source)
         at applets.impression.Impression.<clinit>(Impression.java:38)
         ... 11 moreand then the certicat authentification windows appears but it's too late, the applet won't never execute ...
    the apache/jboss server is accessed via some gateway, firewal, ... tha t i can't control
    the apache jboss/server on my own PC is accessed directly :
    What is amazing, is that work fine with my own professionnal PC on W2000 SP4, with JRE1.5.0.14 and Firefox 2.0.0.11 :
    when I look in the java console, the java freeze until i have answered this java security window (certicat authentification windows). And when i answered "run" no problem the applet makes her own job.
    here is the code when it works :
    security: La v�rification du certificat � l'aide des certificats AC racine a �chou�
    security: Aucune information d'horodatage disponible
    basic: Plugin modality.pushed
    basic: Modalit� empil�e
    basic: push javax.swing.JDialog[dialog0,379,296,519x323,layout=java.awt.BorderLayout,modal,title=Avertissement - S�curit�,defaultCloseOperation=HIDE_ON_CLOSE,rootPane=javax.swing.JRootPane[,3,22,513x298,layout=javax.swing.JRootPane$RootLayout,alignmentX=0.0,alignmentY=0.0,border=,flags=16777673,maximumSize=,minimumSize=,preferredSize=],rootPaneCheckingEnabled=true]
    basic: Chargement arr�t�...
    basic: Arr�t de l'applet...Conclusion
    POS : Win XP SP2, JRE1.5.0.14 (i tried 1.5.0.6 and 1.6.3 the latest), Firefox 2.0.0.11 (I tried 2.0.0.0 and 3 beta2 don't work anyway)
    my own server/client : W2000 SP4, JRE1.5.0.14, Firefox 2.0.0.11
    Linux server : RHEL4
    It works with IE on the POS with the linux sever but it's not the selected browser.
    It works with IE on the POS with my own server.
    It works with Firefox on the POS with my own server.
    It works with IE on my own server with the linux sever but it's not the selected browser.
    It works with IE on my own server with my own server.
    It works with Firefox on my own server with the linux sever.
    It works with Firefox on my own server with my own server.
    If you have some idea to make it work i'm you're buyer !!
    Thank a lot for reading this, and i apologize for my poor english ...
    greetings,
    Benoit
    Edited by: bendur on Feb 29, 2008 3:49 AM

    Ok I have found my problem :
    On every web pages, we have defined some inactivity timeouts.
    On my own server I have disabled these timeouts but not on the distant timeout.
    And it seems that the timeout (defined in javascript ont he web pages : 3s) has a very bad influence on the launching of my applet ... only with firefox (with IE and Opera no problem)
    My problem is anwsered but the problem keep alive for firefox ...

Maybe you are looking for

  • How do I know what Opatch has been installed on OBIEE 11.1.1.6.2?

    Hi, I started working with new client and someone does obiee upgrade to 11.1.1.6.2. now users got some issue and we identified that issue can be resolved if we apply a patch and to apply that patch it is saying please make sure you have installed pre

  • Rejecting my admin password thats never been chang...

    BT Home hub manager keeps interupting and saying they can't connect to broadband and I need to change the admin password. However I am still connected and apart from the manager have no problems. I decided to change the password to see if it stopped

  • IPhoto used to be available for Screen Savers, no more?

    I used to be able in Preferences>Screen Saver to point to my iPhoto library, now (and I don't know what changes I made that could have caused this) the iPhoto libraries are greyed out. Any ideas? Thanks in advance.

  • Example programs

    hi please send me one example of follwing reports 1.alv 2.interactive report 3.classical

  • [SOLVED] Stuck in fresh install: problems after succesfull glibc upgra

    Hello everyone. I am stuck in the installation after upgrading glibc. I am installing from the Core Image ISO. As it says in the Developer Wiki the first thing I did after installing the system is: $ pacman -U http://pkgbuild.com/~allan/glibc-2.16.0