RMI and Applet

I have my connection from the server to the client via RMI.
I can transfert an Object who is serialize.
At the client side, I use a method to get an String attribute from my object and it worked. Fabulous.
At this point, all worked perfectly.
The problem is : When I transform my client's class into an applet and view it from a browser. It return Null or null exception.
The question : What can I do? Some persons says that using IE6 is THE solution. What do you think?
Thank you for your support

The problem may be that M$ doesn't support RMI at all. So install the Java Plugin from Sun, and it should work.
P.J.

Similar Messages

  • RMI and applets

    Hello, I hate to do this and I know all of you hate it too, but I have to ask a question thats already been answered, I just can't find the answer that I like.
    I have two computers, one running linux serving webpages, and one running XP for work. I wrote a simple rmi application to try to figure this stuff out. The application works fine. But when I try to change it to an applet, I get :
    java.security.AccessControlException: access denied (java.net.SocketPermission 192.168.0.102:1099 connect,resolve)
    and it goes on from there. Everywhere I look I see people saying that I need to write policy files. So I wrote one on the server side.
    grant {
    permission java.security.AllPermission;
    Doesn't change anything though. I don't see any need to write one for the client side because the applet won't be accessing anything on the client side, and I don't want people writing policy files just so they can see my applet. Could you correct me if I'm wrong and perhaps tell me what I should be doing, thanks in advance.

    Try the below two Links.
    One way to avoid client policy setting is to sign the applet, thats what i found till now follows the link is the gist. Let me know.
    http://forum.java.sun.com/thread.jsp?forum=63&thread=132331
    http://java.sun.com/developer/qow/archive/167/index.jsp
    Here's the steps I got to work using a Verisign Java Signing Cert (as opposed to a Verisign Netscape signing cert) and the JDK keytool and jarsigner utilities from JDK 1.3 RC1. I used a non-default keystore and a non-default alias, but the same steps should also work using the defaults.
    rem generate an RSA keystore:
    keytool -genkey -keystore C:\javasign\verisign_store.keystore -alias verisignKey -keyalg "RSA"
    rem generate a request. Open the file and copy the contents into Verisign's form submission page and submit:
    keytool -certreq -keystore C:\javasign\verisign_store.keystore -alias verisignKey -file c:\javasign\verisignCSR.txt
    rem When you get the reply back (as "cert.cer") import it into the keystore generated in step one:
    keytool -import -trustcacerts -keystore C:\javasign\verisign_store.keystore -alias verisignKey -file c:\javasign\cert.cer
    rem use the keystore to sign an existing jar:
    jarsigner -keystore C:\javasign\verisign_store.keystore -signedjar newjar.jar myjar.jar verisignKey
    Let me know.
    Imran

  • Can we use applets as user interfaces with sockets, RMI and J2EE

    Dear Sir or Madam,
    Since I am a TA for software architecture class, some one ask me the following question: I think the answer is "No" based on the document on http://java.sun.com/sfaq/
    How I answer the quesions? Looking forward your help!!!
    1.You may have 2 applets and 2 html files. One applet with one html file may stay at a client PC and run on this PC, and the other applet with the other html file may stay at a server PC and run on this PC. In this case, all the applets are run locally.
    2.Could applets works with sockets, RMI and J2EE?
    3.Can we use applets as user interfaces with sockets, RMI and J2EE?
    Thank you very much!
    Best regards,
    Jing

    The scenario you paint doesn't quite make sense. The "server PC" wouldn't be running an applet, normally, since applets are by definition in a web browser page, and most likely involve user interaction, and "server processes" generally are done without user interaction.
    The security rules around applets are that -- by default -- applets can connect with sockets ONLY to the server from whence the applet was loaded. RMI uses sockets (J2EE is too broad a spec) and hence RMI calls would also be limited to the server from whence the applet was loaded. Within that limitation, an applet could open all the sockets it wants, so long as they are all on the server from whence the applet was loaded.
    If you want two applets on two different systems to communicate with each other, the simplest way is to have them rendevous through a server process on the server(s) from whence each applet was loaded. Maybe it's PC-a <-> server-a <-> server-b <-> PC-b ...? Or maybe PC-a and PC-b both are talking to the same server.
    The limitation is rooted in the security subsystem. You can specify a policy file and override anything in the security subsystem. That does mean signing the applet and then cajoling the user into agreeing to grant greater levels of security than the default. In such a case you can open sockets more broadly and then PC-a could talk directly to PC-b without going through any servers.
    - David

  • Rmi and http

    i know this might sound silly but i am new to rmi ( to java too )
    i want to understand the difference between rmi and other protocols such as http,ftp and so.
    now what i think i know - and sometimes think im not sure i know or
    perhaps im sure i know nothing about - is that rmi is java specific and can only work with java while http is different if im not wrong.. and rmi does not require http r8?
    so how can rmi work over http or ftp ..,( can it in the 1st place ?)

    Which version of WLS you are using?
    Applet should also need to satisfy the version requirements similar to
    standalone java client. With WLS 5.1, it may work. But, it will not work
    with 6.* servers.
    Again, the JRE versions in the Netscape and IExplorer are different. So the
    applet, working in IE may not work on Netscape. It is better to test a
    sample application, than taking assumptions.
    Cheers,
    ..maruthi
    "Andrea Musumeci" <[email protected]> wrote in message
    news:3cb1dcba$[email protected]..
    can an applet written in java 1.1.x work in a browser using weblogic rmiwithout a plugin? I need to create a java chat applet with callback. Tnx in
    advance

  • RMI and Netbeans

    hello,
    i have develop a simple application using RMI. It was running perfectly from command prompt.
    Then i imported the project into netbeans 6.1. Then when i run it the server looks running normally but when a client try to connect to the server it given an error
    java.rmi.UnmarshalException: error unmarshalling return; nested exception is:
    java.lang.ClassNotFoundException: ........(No security manager: RMI class loader disabled)
    Can someone help suggest a solution
    Thanks

    Hi!
    Please tell me how could you get netbeans 6.1 to recognise an RMI project.
    I have too, tried to import some old java files (two rmi interface files a server implementation and an applet) into netbeans 6.1. As far as i can tell it completely refuses to work with RMI, and i have not found ANY support on the internet so far, to how to do it, or any working rmi modules for netbeans 6.1 ...
    Years old rmi developement, what worked nicely under windows 95 (good old days lol) does not wish to work for me now...
    Should I return to use age old enviroments, or what?
    I would deeply appreciate any help from You, or anyone able.
    Thanks!

  • Rmi and jms

    It is the fouth thread for the jms and rmi. Is there anyone that can answer me?
    I can run rmi and jms sample in the oc4j standalone. but if I run in the application server, there are always some errrors. I have searched all the forum and the documents about application. I found nothing helping to me.
    Is there a tutoral for run rmi and jms in the application server step by step?
    Was there anyone help me, I will lose my job soon.
    God save me.

    I installed the oracle9ias9.02 on linux 7.1. and the installation is ok. I can deploy application.
    I deploy the ear file and the jsp and servlet are running ok.
    In the application, there is a applet which will call the method through rmi.
    and the bean which provide the rmi method will recieve jms messages in the server side.
    here is the applet:
    package transfer;
    import java.awt.*;
    import java.awt.event.*;
    import java.applet.*;
    import java.rmi.*;
    import java.rmi.server.*;
    import java.io.*;
    import java.util.*;
    import com.longshine.transfer.TransferDataList; //interface file
    * Title: CAO5M3H]TV187]O5M3--J5J1<`?XJ}>]4+Jd
    * Description: @{SCRMI5wSC7~NqFw6K5DTransferDataList3LPr#,2ISCJMS4SJ}>]7"KM6K;q5C4+JdJ}>]!#
    * Copyright: Copyright (c) 2002
    * Company: longshine
    * @author MuCt
    * @version 1.0
    public class TransferMonitor extends Applet {
    boolean isStandalone = false;
    TextArea textArea1 = new TextArea();
    Button refresh = new Button();
    Button stop = new Button();
    Label data_stat=new Label(); //M3<FJ}>]OTJ>
    TransferDataList DataList=null; //6(ReR;8vT63L6TOs5D=S?Z!#
    /**Get a parameter value from applet param list*/
    public String getParameter(String key, String def) {
    return isStandalone ? System.getProperty(key, def) :
    (getParameter(key) != null ? getParameter(key) : def);
    /**Construct the applet*/
    public TransferMonitor() {
    /**Initialize the applet*/
    public void init() {
    try {
    jbInit();
    catch(Exception e) {
    e.printStackTrace();
    /**Component initialization*/
    private void jbInit() throws Exception {
    setLayout(new BorderLayout());
    textArea1.setText("?*J<=SJUIm7]Is:KJ}>]O{O"...\n");
    refresh.setLabel("K"PB");
    refresh.addMouseListener(new java.awt.event.MouseAdapter() {
    public void mouseClicked(MouseEvent e) {
    refresh_mouseClicked(e);
    stop.setLabel("T]M#");
    stop.addMouseListener(new java.awt.event.MouseAdapter() {
    public void mouseClicked(MouseEvent e) {
    stop_mouseClicked(e);
    //data_stat.setText("M3<F");
    this.add(textArea1, BorderLayout.CENTER);
    this.add(refresh, BorderLayout.SOUTH);
    this.add(stop, BorderLayout.EAST);
    /**Start the applet
    * ?*J<@{SCRMI:MT67=7~NqFw3LPrTransferDataListServer=(A"A*O5#,5wSC7=7(getPersonList,
    * 5C5=ND1>8qJ=5DJ}>]#,?IRTV1=SOTJ>5=FAD;IO!#
    public void start() {
    String url="rmi://"+getCodeBase().getHost()+"/person_list"; //T63L6TOs5D5XV7<0remote objectC{3F!#
    // System.setSecurityManager(new RMISecurityManager());//applet2;PhR*2ISCsecurityManager9\@m
    try {
    DataList=(TransferDataList)Naming.lookup(url);
    textArea1.append(this.get_gb(DataList.getMessageList()));
    catch (Exception e) {
    System.out.println("Lookup RMI Server Error:"+e);
    /**Stop the applet*/
    public void stop() {
    /**Destroy the applet*/
    public void destroy() {
    /**Get Applet information*/
    public String getAppletInfo() {
    return "Audit Data Monitor Applet";
    /**Get parameter info*/
    public String[][] getParameterInfo() {
    return null;
    /**Main method*/
    public static void main(String[] args) {
    TransferMonitor applet = new TransferMonitor();
    applet.isStandalone = true;
    Frame frame;
    frame = new Frame() {
    protected void processWindowEvent(WindowEvent e) {
    super.processWindowEvent(e);
    if (e.getID() == WindowEvent.WINDOW_CLOSING) {
    System.exit(0);
    public synchronized void setTitle(String title) {
    super.setTitle(title);
    enableEvents(AWTEvent.WINDOW_EVENT_MASK);
    frame.setTitle("Applet Frame");
    frame.add(applet, BorderLayout.CENTER);
    applet.init();
    applet.start();
    frame.setSize(400,320);
    Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
    frame.setLocation((d.width - frame.getSize().width) / 2, (d.height - frame.getSize().height) / 2);
    frame.setVisible(true);
    * Ge?U51G0GxSr5D@zJ7OTJ>J}>]#,VXPB?*J<OTJ>PB5DO{O"!#
    void refresh_mouseClicked(MouseEvent e) {
    textArea1.setText("?*J<=SJUPB5DIm7]HOV$O{O"#!#!#!\n");
    this.start();
    System.out.println("clear current text area!!!");
    * reserved
    void stop_mouseClicked(MouseEvent e) {
    System.out.println("click stop button!!!");
    public String get_gb(String s_name) {
    String s_unicode="" ;
    try{
    s_name = s_name.trim ();
    byte[] bytes = s_name.getBytes("8859-1");
    s_unicode = new String(bytes,"GB2312");
    }catch(UnsupportedEncodingException e){
    System.out.println(e.toString());}
    return s_unicode;
    public String get_iso8859_1(String s_name) {
    String s_unicode="" ;
    try{
    s_name = s_name.trim ();
    byte[] bytes = s_name.getBytes("GB2312");
    s_unicode = new String(bytes,"8859-1");
    }catch(UnsupportedEncodingException e){
    System.out.println(e.toString());}
    return s_unicode;
    here is the rmi bean:
    package com.longshine.transfer;
    import java.rmi.*;
    import java.rmi.server.*;
    import com.longshine.pub_func.*;
    * Title: CAO5M3H]TV187]O5M3#-#-RMI Server3LPr#,4&@mRMIT63LGkGs!#
    * Description: 2ISCJMS7=J=4SG06KO5M3;q5CO{O"J}>]!#
    * Copyright: Copyright (c) 2002
    * Company: longshine
    * @author MuCt
    * @version 1.0
    public class TransferDataListServer {
    public TransferDataListServer() {
    public static void main(String[] args) {
    // Read run option:start/stop from command line
    if (args.length != 1) {
    System.out.println("Usage: java " +"TransferDataListServer <option>");
    System.exit(1);
    // System.out.println("Queue name is " + queueName);
    TransferDataListServer ts1 = new TransferDataListServer();
    try {
    String host_name=GetSysparam.getParam("web_server");
    System.out.println(host_name+"------");
    String url="rmi://127.0.0.1:3101/person_list";
    System.out.println("Construction server implementations...");
    TransferDataListImpl p1=new TransferDataListImpl();
    System.out.println("binding server implementation to registry...");
    Naming.rebind(url,p1);
    System.out.println("Waiting for invocations from clients...");
    catch (Exception e) {
    System.out.println("Start RMI Server Error:"+e);
    here is the impl bean:
    package com.longshine.transfer;
    import java.rmi.server.UnicastRemoteObject;
    import java.rmi.server.*;
    import java.rmi.*;
    import com.longshine.pub_func.*;
    import java.sql.*;
    import javax.jms.*;
    import javax.naming.*;
    * Title: CAO5M3H]TV187]O5M3--J5OV=S?Z5D7~NqFw@`
    * Description:
    * Copyright: Copyright (c) 2002
    * Company: longshine
    * @author MuCt
    * @version 1.0
    public class TransferDataListImpl extends UnicastRemoteObject
    implements TransferDataList
    int TotalMessage=0; //M3<FO{O"W\LuJ}!#
    public TransferDataListImpl() throws RemoteException {
    * 2bJTSC@}#:T63L5wSC5D7=7(#,;q5CIm7]Is:KJ}>]5DAP1m
    public String getPersonList() throws RemoteException {
    String sql_stmt="select * from doc_user";
    int limit=0;
    String user_id,name,str="";
    DbOperate db1=new DbOperate();
    db1.setExecQuery(sql_stmt);
    ResultSet rs=db1.getExecQuery();
    try {
    while (rs.next() && limit<30) {
    user_id=rs.getString("user_id");
    name=rs.getString("name");
    System.out.println("user_id:"+user_id+"---name:"+name);
    str+="user_id:"+user_id+"; name:"+name+"\n";
    limit++;
    db1.setCloseQuery();
    catch (SQLException e) {
    System.out.println(e.getMessage());
    return "error!!!";
    return str;
    * get queue name from config.properties file.
    public String getQueueName() {
    String queue_name="";
    try {
    queue_name=GetSysparam.getParam("queueName");
    catch (Exception e) {
    System.out.println("Get system param error:"+e);
    return queue_name;
    * @{SCJMS5C5=7"KM5DIs:KJ}>]PEO"!#V.:s9)?M;'6KappletJ9SCrmi7=J=5wSC;q5C!#
    public String getMessageList() throws RemoteException {
    String queueName = null;
    Context jndiContext = null;
    QueueConnectionFactory queueConnectionFactory = null;
    QueueConnection queueConnection = null;
    QueueSession queueSession = null;
    Queue queue = null;
    QueueReceiver queueReceiver = null;
    TextMessage message = null;
    String message_str=""; //save all message to a string .
    queueName = this.getQueueName();
    System.out.println("Queue name is " + queueName);
    * Create a JNDI API InitialContext object if none exists
    * yet.
    try {
    // java.util.Hashtable env=new java.util.Hashtable();
    // env.put(Context.INITIAL_CONTEXT_FACTORY,"com.sun.jndi.rmi.registry.RegistryContextFactory");
    // env.put(Context.PROVIDER_URL,"rmi://172.18.18.128:1099");
    jndiContext = new InitialContext();
    catch (NamingException e) {
    System.out.println("Could not create JNDI API " +
    "context: " + e.toString());
    System.exit(1);
    * Look up connection factory and queue. If either does
    * not exist, exit.
    try {
    queueConnectionFactory = (QueueConnectionFactory)
    jndiContext.lookup("QueueConnectionFactory");
    queue = (Queue) jndiContext.lookup(queueName);
    } catch (NamingException e) {
    System.out.println("JNDI API lookup failed: " +
    e.toString());
    System.exit(1);
    * Create connection.
    * Create session from connection; false means session is
    * not transacted.
    * Create receiver, then start message delivery.
    * Receive all text messages from queue until
    * a non-text message is received indicating end of
    * message stream.
    * Close connection.
    try {
    queueConnection =
    queueConnectionFactory.createQueueConnection();
    queueSession =
    queueConnection.createQueueSession(false,Session.AUTO_ACKNOWLEDGE);
    queueReceiver = queueSession.createReceiver(queue);
    queueConnection.start();
    while (true) {
    Message m = queueReceiver.receive(1);
    if (m != null) {
    if (m instanceof TextMessage) {
    message = (TextMessage) m;
    System.out.println("Reading message: " +
    message.getText());
    message_str+=message.getText()+"\n";
    } else {
    break;
    } catch (JMSException e) {
    System.out.println("Exception occurred: " +
    e.toString());
    } finally {
    if (queueConnection != null) {
    try {
    queueConnection.close();
    } catch (JMSException e) { System.out.println("jms expetion: "+e);}
    return message_str;
    all these bean will run ok in the sun j2ee envrionment, but can not work in the application server.
    in the sun j2ee, I will run rmiregister and the run the rmi server, the applet then can invoke the rmi method.
    in the oracle9ias application server, how i can run the rmi server
    thanks

  • RMI and JXTA

    Please i am confused between RMI and JXTA. I know that JXTA is for Peer 2 Peer distributed computing and RMI for general distributed computing. But what are the technical differences ? Can RMI be compared to JXTA or are they completely different things. Thanks

    basically this is where im at. I have two applets for the two different versions of the game. You can Check them out at
    http://cs.stmarys.ca/~csc465004/gui/MastermindAppletCM.html, or
    http://cs.stmarys.ca/~csc465004/gui/MastermindAppletCB.html
    but dont use netscape or it wont work. so these two play against the computer. what i would like to do is have it so that two people can play against each other. so when they click the SEND button they can send their guess or their score to the other player and update both of thier applets. i have no idea what to do.

  • Shareable Interface between two RMI based applets

    Hello! I am developing a project in simulation environment (cref) in Java Card and I have one problem.
    First of all I have create two RMI based applets and I want to make one of these applets to implement a shareable interface.
    As we know a classical RMI based applet has three parts: one interface that extends Remote interface (lets call it ApplicationRemoteInt),
    one class that implements the previous interface (ApplicationImpl) and one class that extends javacard.framework.Applet which manipulates
    ApplicationImpl (ApplicationApplet).
    My problem is that I don't know which of these three programs (make it two, I don't think i could be
    ApplicationRemoteInt) have to implement an another Interface, which extends Shareable Interface (ApplicationShareable), and in which way.
    Also I think that the ApplicationShareable must be implemented by an Applet class.
    As you see I am confused, can anyone help me, please?
    Thank you in advance, Bill.

    Thank you very much for your response. I had knowledge about Shareable Interfaces between two traditional applets,
    BUT not between two RMI based applications.
    Finally I found that RMI based application does not support shareable interface:
    http://forum.java.sun.com/thread.jspa?threadID=728540&messageID=4194658
    Thank you for your reply anyway, Bill.

  • What is the difference between RMI and JAX-RPC?

    Dear All
    First of all my understanding of RMI and JAX-RPC:
    RMI is JAVA only version of RPC. It can't talk to any other language.
    JAX-RPC is a part of JWSDP and if you implement your client and server with JAX-RPC, client written in any language can talk with JAX-RPC implementation.
    What else makes them different and am I right with my understanding?
    Finally, I would like to develop clients which will have a java class, say httpserver.java, which will act like a http server, listens to a http port. Now, Two such client will run in two different PC and I want to call a module from one client to another which should be accessible via my httpserver.java. For that which should be my choice RMI or JAX-RPC? Can I achive it with http get-post method, as I am expecting to read some value of variables from one client to the another.
    Say class A has variable a, aa, aaa and clas B has variable b, bb, bbb. Now I want to read the value of b, bb, bbb from class A. How do I do that when class B is listening to a http port with my httpserver.java class.
    Lastly, say B is listening to a http port and I want to send a file to B from A. How can I do that? Remember, B didn�t ask for that. How can A send a file to B when B is listening to a http port with my httpserver.java.
    With regards
    Mohammed Jubaer Arif
    Mobile: +61-0411215302
    Personal Web: http://www.geocities.com/jubairarifctg/
    Org. Web.: http://www.geocities.com/halimschamber/

    simply put, RMI allows you to (semi) transparently treat remote objects as if they were local, and your distributed application can be written (more or less) like a "normal" java app. Sockets just give you a "raw" connection to work with, and you get to build up your application from that.
    I hope that helped
    Lee

  • Please help: RMI and Swing/AWT issue

    Hi guys, I've been having a lot of trouble trying to get a GUI application to work with RMI. I'd appreciate any help. Here's the story:
    I wrote a Java application and its GUI using Netbeans. In a nutshell, the application is about performing searches. I am now at the point where I need exterior programs to use my application's search capabilities, thus needing RMI. Such exterior programs are to call methods currently implemented in my application.
    I implemented RMI, and got the client --> server communication working. However, the GUI just breaks. It starts outputting exceptions, gets delayed, doesn't update properly, some parts of it stop working.... basically hysterical behavior.
    Now take a look at this line within my server class:
    Naming.rebind("SearchProgram", mySearchProgram);
    If I take it out, RMI obviously does not work... but the application and its GUI work flawlessly. If I put it in, the RMI calls work, but the GUI's above symptoms occur again. Among the symptoms are null pointer exceptions which all look similar, are related to "AWT-EventQueue-0", and keep ocurring. Here's just snippet of the errors outputted:
    Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    at javax.swing.plaf.metal.MetalScrollBarUI.getPreferredSize(MetalScrollBarUI.java:102)
    at javax.swing.JComponent.getPreferredSize(JComponent.java:1615)
    at javax.swing.JScrollBar.getMinimumSize(JScrollBar.java:704)
    at javax.swing.ScrollPaneLayout.minimumLayoutSize(ScrollPaneLayout.java:624)
    at java.awt.Container.minimumSize(Container.java:1598)
    at java.awt.Container.getMinimumSize(Container.java:1583)
    at javax.swing.JComponent.getMinimumSize(JComponent.java:1697)
    at java.awt.BorderLayout.minimumLayoutSize(BorderLayout.java:634)
    at java.awt.Container.minimumSize(Container.java:1598)
    at java.awt.Container.getMinimumSize(Container.java:1583)
    at javax.swing.JComponent.getMinimumSize(JComponent.java:1697)
    at java.awt.BorderLayout.minimumLayoutSize(BorderLayout.java:634)
    at java.awt.Container.minimumSize(Container.java:1598)
    at java.awt.Container.getMinimumSize(Container.java:1583)
    at javax.swing.JComponent.getMinimumSize(JComponent.java:1697)
    at javax.swing.BoxLayout.checkRequests(BoxLayout.java:433)
    at javax.swing.BoxLayout.layoutContainer(BoxLayout.java:375)
    at java.awt.Container.layout(Container.java:1401)
    at java.awt.Container.doLayout(Container.java:1390)
    at java.awt.Container.validateTree(Container.java:1473)
    at java.awt.Container.validateTree(Container.java:1480)
    at java.awt.Container.validateTree(Container.java:1480)
    at java.awt.Container.validateTree(Container.java:1480)
    at java.awt.Container.validateTree(Container.java:1480)
    at java.awt.Container.validate(Container.java:1448)
    at javax.swing.RepaintManager.validateInvalidComponents(RepaintManager.java:379)
    at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(SystemEventQueueUtilities.java:113)
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:461)
    at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
    Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    at javax.swing.plaf.basic.BasicMenuItemUI.getPreferredMenuItemSize(BasicMenuItemUI.java:400)
    at javax.swing.plaf.basic.BasicMenuItemUI.getPreferredSize(BasicMenuItemUI.java:310)
    at javax.swing.JComponent.getPreferredSize(JComponent.java:1615)
    at javax.swing.BoxLayout.checkRequests(BoxLayout.java:434)
    at javax.swing.BoxLayout.preferredLayoutSize(BoxLayout.java:251)
    at javax.swing.plaf.basic.DefaultMenuLayout.preferredLayoutSize(DefaultMenuLayout.java:38)
    at java.awt.Container.preferredSize(Container.java:1558)
    at java.awt.Container.getPreferredSize(Container.java:1543)
    at javax.swing.JComponent.getPreferredSize(JComponent.java:1617)
    at javax.swing.JRootPane$RootLayout.layoutContainer(JRootPane.java:910)
    at java.awt.Container.layout(Container.java:1401)
    at java.awt.Container.doLayout(Container.java:1390)
    at java.awt.Container.validateTree(Container.java:1473)
    at java.awt.Container.validate(Container.java:1448)
    at javax.swing.RepaintManager.validateInvalidComponents(RepaintManager.java:379)
    at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(SystemEventQueueUtilities.java:113)
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:461)
    at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
    There are no complaints about anything within my code, it's all GUI related whenever I make a bind() or rebind() call.
    Again, any help here would be great... cause this one's just beating me.
    Thanks!

    Maybe you want to change that worker thread to
    not do RMI but anything else (dummy data) to see if it really is RMI, I doubt it, I think you are updating some structures that have to do with swing GUI and hence you will hang.
    Just check this out.

  • Connection to CRX via RMI and getting WeakReference value..... with an exception!

    Hi there,
    I have the following problem.
    I opened a ticket in Day Care Support system, about CRX users/group membership that got lost while synchronization with our LDAP server.
    Although when the user and the group had been created (and therefore taken from that same LDAP server), the membership was good.... but after some time the membership got lost......
    So what i am trying to do now is a Java program that connects to CRX via RMI.
    And gets the list of all the users from a group (aka membership).
    The idea is to monitor the membership each seconds.
    But when trying to get the property "rep:members" of the group, I have the following exception :
    javax.jcr.ValueFormatException: Unknown value type 10
              at org.apache.jackrabbit.rmi.server.ServerObject.getRepositoryException(ServerObject.java:13 9)
              at org.apache.jackrabbit.rmi.server.ServerProperty.getValues(ServerProperty.java:71)
              at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
              at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60)
              at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
              at java.lang.reflect.Method.invoke(Method.java:611)
              at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:322)"
    I searched a little bit and found that "10" is the number for type WeakReference.
    That's normal to me because memberships are stored in the group as a list reference to users linked to that group....
    Anyways, what's not normal to me is that when the type is "10" the API does not let me get the Value (cf. ServerProperty.getValues() method)
    Here is the program:
    import java.util.HashMap;
    import java.util.Iterator;
    import java.util.Map;
    import javax.imageio.spi.ServiceRegistry;
    import javax.jcr.Node;
    import javax.jcr.NodeIterator;
    import javax.jcr.Property;
    import javax.jcr.PropertyIterator;
    import javax.jcr.Repository;
    import javax.jcr.RepositoryException;
    import javax.jcr.RepositoryFactory;
    import javax.jcr.Session;
    import javax.jcr.SimpleCredentials;
    import javax.jcr.Value;
    public class Test {
              public static void main(String[] args) {
                        String uri = "rmi://sma11c02.............:1234/crx";
                        String username = "admin";
                        char[] password = {....................};
                        String workspace = "crx.default";
                        String nodePath = "/home/groups/a";
                        Repository repository = null;
                        Session session = null;
                        try {
                                  // Connection to repository via RMI
                                            Map<String, String> jcrParameters = new HashMap<String, String>();
                                            jcrParameters.put("org.apache.jackrabbit.repository.uri", uri);
                                            Iterator<RepositoryFactory> iterator = ServiceRegistry.lookupProviders(RepositoryFactory.class);
                                            while (null == repository && iterator.hasNext()) {
                                                      repository = iterator.next().getRepository(jcrParameters);
                                  if (repository == null) {
                                            throw new IllegalStateException("Problem with connection to the repository...");
                                  // Creation of a session to the workspace
                                  session = repository.login(new SimpleCredentials(username, password), workspace);
                                  if (session == null) {
                                            throw new IllegalStateException("Problem with creation of session to the workspace...");
                                  // Get the targetted node
                                  Node node = session.getNode(nodePath);
                                  System.out.println("Node : " + node.getName());
                                  System.out.println();
                                  PropertyIterator properties = node.getProperties();
                                  System.out.println("List of properties for this node :");
                                  while (properties.hasNext()) {
                                            Property property = properties.nextProperty();
                                            System.out.print("\t"+property.getName() + " : ");
                                            if (property.isMultiple()) {
                                                      Value[] values = property.getValues();
                                                      for (int i = 0; i < values.length; i++) {
                                                                System.out.print(values[i]);
                                                                if (i+1 != values.length) {
                                                                          System.out.print(", ");
                                                      System.out.println();
                                            } else {
                                                      Value value = property.getValue();
                                                      System.out.println(value);
                                  System.out.println();
                                  NodeIterator kids = node.getNodes();
                                  System.out.println("List of children nodes for this node :");
                                  while (kids.hasNext()) {
                                            Node kid = kids.nextNode();
                                            System.out.println("\tChild node : "+kid.getName());
                                            PropertyIterator kidProperties = kid.getProperties();
                                            System.out.println("List of properties for this child :");
                                            while (kidProperties.hasNext()) {
                                                      Property property = kidProperties.nextProperty();
                                                      System.out.print("\t"+property.getName() + " : ");
                                                      if (property.isMultiple()) {
                                                                Value[] values = property.getValues();
                                                                for (int i = 0; i < values.length; i++) {
                                                                          System.out.print(values[i]);
                                                                          if (i+1 != values.length) {
                                                                                    System.out.print(", ");
                                                                System.out.println();
                                                      } else {
                                                                Value value = property.getValue();
                                                                System.out.println(value);
                                            System.out.println();
                        } catch (RepositoryException e) {
                                  e.printStackTrace();
                        } finally {
                                  if (session != null) {
                                            session.logout();
    Here is the output of the below program:
    Node : a
    List of properties for this node :
              jcr:createdBy : admin
              jcr:mixinTypes : mix:lockable
              jcr:created : 2011-10-25T16:58:48.140+02:00
              jcr:primaryType : rep:AuthorizableFolder
    List of children nodes for this node :
              Child node : administrators
    List of properties for this child :
              jcr:createdBy : admin
              rep:principalName : administrators
              rep:members : javax.jcr.ValueFormatException: Unknown value type 10
              at org.apache.jackrabbit.rmi.server.ServerObject.getRepositoryException(ServerObject.java:13 9)
              at org.apache.jackrabbit.rmi.server.ServerProperty.getValues(ServerProperty.java:71)
              at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
              at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60)
              at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
              at java.lang.reflect.Method.invoke(Method.java:611)
              at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:322)
              at sun.rmi.transport.Transport$1.run(Transport.java:171)
              at java.security.AccessController.doPrivileged(AccessController.java:284)
              at sun.rmi.transport.Transport.serviceCall(Transport.java:167)
              at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:547)
              at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:802)
              at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:661)
              at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:897)
              at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:919)
              at java.lang.Thread.run(Thread.java:736)
              at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(Unknown Source)
              at sun.rmi.transport.StreamRemoteCall.executeCall(Unknown Source)
              at sun.rmi.server.UnicastRef.invoke(Unknown Source)
              at org.apache.jackrabbit.rmi.server.ServerProperty_Stub.getValues(Unknown Source)
              at org.apache.jackrabbit.rmi.client.ClientProperty.getValues(ClientProperty.java:173)
              at Test.main(Test.java:96)
    Here is the list of jar files i'm using with this program:
              2862818581          61388           crx-rmi-2.2.0.jar
              732434195           335603           jackrabbit-jcr-commons-2.4.0.jar
              1107929681           411330           jackrabbit-jcr-rmi-2.4.0.jar
              3096295771           69246           jcr-2.0.jar
              1206850944           367444           log4j-1.2.14.jar
              685167282           25962           slf4j-api-1.6.4.jar
              2025068856           9748           slf4j-log4j12-1.6.4.jar
    Finally, we are using CQ 5.4 (CRX 2.2) with the latest hotfix and under Websphere 7.0
    Best regards,
    Vincent FINET

    Je suis absent(e) du bureau jusqu'au 17/04/2012
    Je suis absent.
    Je répondrai à votre sollicitation à mon retour le 17 avril 2012.
    Cordialement,
    Vincent FINET
    Remarque : ceci est une réponse automatique à votre message  "[CQ5]
    Connection to CRX via RMI and getting WeakReference value..... with an
    exception!" envoyé le 13/4/12 0:32:14.
    C'est la seule notification que vous recevrez pendant l'absence de cette
    personne.
    Le papier est un bien precieux, ne le gaspillez pas. N'imprimez ce document que si vous en avez vraiment besoin !
    Ce message est confidentiel.
    Sous reserve de tout accord conclu par ecrit entre vous et La Banque Postale, son contenu ne represente en aucun cas un engagement de la part de La Banque Postale.
    Toute publication, utilisation ou diffusion, meme partielle, doit etre autorisee prealablement.
    Si vous n'etes pas destinataire de ce message, merci d'en avertir immediatement l'expediteur.

  • RMI and Swing Events

    Hi,
    I have a problem, integrating an application with RMI and a Client side with swing.
    I have un RMI object that does something, and in any time I want to inform to the client side rmi... I did something like:
    // This is the REmote implementation
    public MyRemoteImpl extends Activatable implements MyRemote{
      EventListenerList listeners;
    // code for activation, etc.......
      public void addListener(MyListener l){
        // add the listener in the list...
      public void fireEvent(String msgEvent){
        // in each listener that is MyListener, .doEvent(String msg)
      // Methods that calls fireEvent...
    // Mylistener interface..
    public MyListener implements EventListener{
      public void doEvent(String msg);
    // The swing client side.
    public MyClient extends JPanel implements MyListener{
      MyRemote rem=null;
      // In the start of ui.. Ido:
      rem.addListener(this);
      public void doEvent(String msg){
        // Puts the message at one component....
    }The problem is that when the doEvent of the Swing side is called, it is executing in the rmid... And the UI is not updated...
    What I do wrong??
    Thanks and Best Regards.

    I wrote an application that does something similar, it receives some event and modifies a JTree accordingly. You should try using the java.awt.EventQueue.invokeLater(Runnable) method. Something like this:
    public void doEvent(String msg) {
        // Determine what changes need to be made
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                // Only the GUI component modification calls need to go here
    }

  • Is it possible to run a website built in Java and applet from Safari browser in iPad

    Is it possible to run a website built in Java and applet from Safari browser in iPad?

    Java isn't supported on the iPad

  • JDev3.0's JSP and Applet works on NT but doesn't work on Win98, why?

    JDeveloper3.0 works fine on WindowNT machine when I run JSP files and Applet, but at home the JDeveloper3.0 cannot trigger the browser to display the result on my Windows98 machine when I run the JSP files or Applet. Why? How can I make it works for me at home. Other tools, such as J++6.0 and JBuilder work with Applet on the same machine. Who can help me?

    James,
    The JDeveloper 3.0 design time environment is not supported on Windows98. Some functions might work under Win98 but they are not supported.
    Sorry!
    Regards,
    Arun

  • Regarding communication between JSF and applet.

    Hi all,
    I have to send a array of int value from JSF to the applet method and vice versa,
    so how can I do that?
    Is there any straight forward way is there?
    Or I need to use javascript in between applet and JSF for communicating.
    If this is case can give some links so that I can go through it.
    What I need is, I have jsf table(grid) when I select a row from table, for the selected row I have to display selected row ID in applet and vice versa.
    Any suggestion or links will be appreciated, thanks in advance.
    Thanks
    daya

    thanks and sorry for late reply, let me go through the link,
    i have tried with JavaScript, i got stuck, i need to call a JavaScript method for JSF component event listener. I searched in Google but no help regarding same.
    Actually what I need is, I have JSF Component i.e. GridView(Table) and applet in a page. And for each row selection in GridView(table) I need to call a javascript method (with column value), and vice versa.
    Can you give suggestion or any link so that can proceed further.
    and i am able to communicate between applet which are included in the page
    Thanks
    Daya

Maybe you are looking for