hi 
i am using netbeans IDE; 

I use the extension manager tool to download the websocket lib after 
finishing download I select "Refresh Libs".

I provide here the code file of my application and the  error in my console 
when running the app

code 1

public class MHTalk {

    private Form current;
    private Resources theme;
    WebSocket sock;
    Container chatContainer;

    public static final String 
SERVER_URL="ws://localhost:8080/cn1-websocket-demo-server/chat";
    
    public void init(Object context) {
        theme = UIManager.initFirstTheme("/theme");

        // Enable Toolbar on all Forms by default
        Toolbar.setGlobalToolbar(true);

        // Pro only feature, uncomment if you have a pro subscription
        // Log.bindCrashProtection(true);
        
        sock = new WebSocket(SERVER_URL) {

            @Override
            protected void onOpen() {
                System.out.println("In onOpen");
            }

            @Override
            protected void onClose(int statusCode, String reason) {
                
            }

            @Override
            protected void onMessage(final String message) {
                System.out.println("Received message "+message);
                Display.getInstance().callSerially(new Runnable() {
                    public void run() {
                        if (chatContainer == null) {
                            return;
                        }
                        SpanLabel label = new SpanLabel();
                        label.setText(message);
                        chatContainer.addComponent(label);
                        chatContainer.animateHierarchy(100);
                    }
                    
                });
            }

            @Override
            protected void onError(Exception ex) {
                System.out.println("in onError");
            }

             @Override
             protected void onMessage(byte[] message) {
                 
             }
            
        };
        System.out.println("Sending connect");
        sock.connect();
    }
    
    void showLogin() {
        Form f = new Form("MHTalk");
        f.addComponent(new Label("Name: "));
        final TextField nameField = new TextField();
        f.addComponent(nameField);
        f.addComponent(new Button(new Command("Login"){ 

            @Override
            public void actionPerformed(ActionEvent evt) {
                sock.send(nameField.getText());
                showChat(nameField.getText());
            }
               
        }));
        f.show();
    }
    
    void showChat(String username) {
        Form f= new Form("Welcome "+username+" Chat Form");
        f.setLayout(new BorderLayout());
        Container south = new Container();
        final TextField tf = new TextField();
        Button send = new Button(new Command("Send") {
            @Override
            public void actionPerformed(ActionEvent evt) {
                sock.send(tf.getText());
                tf.setText("");
            }
             
        });
        
        chatContainer = new Container();
        chatContainer.setScrollableY(true);
        chatContainer.setLayout(new BoxLayout(BoxLayout.Y_AXIS));
        
        south.addComponent(tf);
        south.addComponent(send);
        f.addComponent(BorderLayout.SOUTH, south);
        f.addComponent(BorderLayout.CENTER, chatContainer);
        f.setFormBottomPaddingEditingMode(true);
        f.show();
        
    }
    public void start() {
        if(current != null){
            current.show();
            return;
        }
//        Form hi = new Form("Hi World");
//        hi.addComponent(new Label("Hi World"));
//        hi.show();
        showLogin();
    }

    public void stop() {
        current = Display.getInstance().getCurrent();
        if(current instanceof Dialog) {
            ((Dialog)current).dispose();
            current = Display.getInstance().getCurrent();
        }
    }
    
    public void destroy() {
    }

}
 
code 2

public abstract class WebSocket {
    
    private static int nextId = 1;
    WebSocketNativeImpl impl ;
    
    public static class WebSocketException extends IOException {
        private final int code;
        public WebSocketException(String message, int code) {
            super(message);
            this.code = code;
        }
        public int getCode(){
            return code;
        }
    }
    
    private static WeakHashMap<Integer,WebSocket> sockets = new 
WeakHashMap<Integer,WebSocket>();
    
    //Utility method for the iOS port to create a new byte array
    static byte[] newByteArray(int len) {
        return new byte[len];
    }
    
    static void messageReceived(int id, String message) {
        WebSocket socket = sockets.get(id);
        if (socket == null) {
            sockets.remove(id);
        } else {
            socket.onMessage(message);
        }
    }
    
    static void messageReceived(int id, byte[] message) {
        WebSocket socket = sockets.get(id);
        if (socket == null) {
            sockets.remove(id);
        } else {
            socket.onMessage(message);
        }
    }
    
    static void closeReceived(int id, int statusCode, String reason) {
        WebSocket socket = sockets.get(id);
        if (socket == null) {
            sockets.remove(id);
        } else {
            socket.onClose(statusCode, reason);
            sockets.remove(id);
        }
    }
    
    static void openReceived(int id) {
        WebSocket socket = sockets.get(id);
        if (socket == null) {
            sockets.remove(id);
        } else {
            socket.onOpen();
        }
    }
    
    static void errorReceived(int id, String message, int code) {
        WebSocket socket = sockets.get(id);
        if (socket == null) {
            sockets.remove(id);
        } else {
            WebSocketException ex = new WebSocketException(message,code);
            socket.onError(ex);
        }
    }
    
    public WebSocket(String url) {
        impl = 
(WebSocketNativeImpl)com.codename1.system.NativeLookup.create(WebSocketNativeImpl.class);
        impl.setId(nextId++);
        sockets.put(impl.getId(),this);
        impl.setUrl(url);
    }
    
    protected abstract void onOpen();
    protected abstract void onClose(int statusCode, String reason);
    protected abstract void onMessage(String message);
    protected abstract void onMessage(byte[] message);
    protected abstract void onError(Exception ex);
    
    public void send(String message) {
        impl.sendString(message);
    }
    public void send(byte[] message) {
        impl.sendBytes(message);
    }
    
    public void close() {
        impl.close();
    }
    
    public void connect() {
        impl.connect();
    }
}

Code 3

public interface WebSocketNativeImpl extends NativeInterface {
    
    public void setUrl(String url);
    public void setId(int id);
    public int getId();
    public void sendBytes(byte[] message);
    public void sendString(String message);
    public void close();
    public void connect();
    
}

Console error message when running the app

compile:
run:
java.lang.ClassNotFoundException: com.mhsoft.mhtalk.WebSocketNativeImplImpl
    at java.net.URLClassLoader$1.run(URLClassLoader.java:372)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:360)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    at java.lang.ClassLoader.findSystemClass(ClassLoader.java:1001)
    at 
com.codename1.impl.javase.ClassPathLoader.findClass(ClassPathLoader.java:100)
    at 
com.codename1.impl.javase.ClassPathLoader.loadClass(ClassPathLoader.java:50)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:259)
    at com.codename1.system.NativeLookup.create(NativeLookup.java:81)
    at com.mhsoft.mhtalk.WebSocket.<init>(WebSocket.java:87)
    at com.mhsoft.mhtalk.MHTalk$1.<init>(MHTalk.java:42)
    at com.mhsoft.mhtalk.MHTalk.init(MHTalk.java:42)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:483)
    at com.codename1.impl.javase.Executor$1$1.run(Executor.java:81)
    at com.codename1.ui.Display.processSerialCalls(Display.java:1151)
    at com.codename1.ui.Display.mainEDTLoop(Display.java:968)
    at com.codename1.ui.RunnableWrapper.run(RunnableWrapper.java:120)
    at com.codename1.impl.CodenameOneThread.run(CodenameOneThread.java:176)
java.lang.NullPointerException
    at com.mhsoft.mhtalk.WebSocket.<init>(WebSocket.java:88)
    at com.mhsoft.mhtalk.MHTalk$1.<init>(MHTalk.java:42)
    at com.mhsoft.mhtalk.MHTalk.init(MHTalk.java:42)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:483)
    at com.codename1.impl.javase.Executor$1$1.run(Executor.java:81)
    at com.codename1.ui.Display.processSerialCalls(Display.java:1151)
    at com.codename1.ui.Display.mainEDTLoop(Display.java:968)
    at com.codename1.ui.RunnableWrapper.run(RunnableWrapper.java:120)
    at com.codename1.impl.CodenameOneThread.run(CodenameOneThread.java:176)
Java Result: 1
BUILD SUCCESSFUL (total time: 20 seconds)

Please help

-- 
You received this message because you are subscribed to the Google Groups 
"CodenameOne Discussions" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
Visit this group at https://groups.google.com/group/codenameone-discussions.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/codenameone-discussions/6b20b864-80c3-42e9-a5ea-9f2c72d08283%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to